2016-08-28 3 views
0

есть в какой-либо способ, чтобы получить значения из параметров в «functionone» и вычислить его в «functiontwo» без записи, что снова это небольшой код, например, что я имею в видуC# Передача параметров значения из функции в другие функции

public void functionone(int x, int y) 
{ 

    x = 1; 
    y = 2; 

} 

public void functiontwo(int a , int b) 
{ 
    a=x+y; 
    b=x-y; 

    Console.WriteLine(a); 
    Console.WriteLine(b); 


} 
+0

Нет, вы должны называть это явным образом. – zerkms

+0

Нет, вы должны вызывать функцию function fromwo из функцииOne и передавать параметр. –

+0

@NeerajSharma, как я это называю? – shar

ответ

0

Вы реализуете functionone неправильно, я думаю, делает это: общественности недействительным functionone (INT х, у) ИНТ { х = 1; y = 2; }}, как правило, не является способом передачи параметров и изменения его значений в методе , иначе говоря, x и y должны содержать значения, которые вы передаете в качестве параметров, и не получайте назначение внутри метода.

определить глобальную х и глобальный у, то вы можете получить доступ к нему везде в этой области видимости ..

Пример:

class Abc{ 
    int globalX; 
    int globalY; 
.... 
public void functionone(int x, int y) 
{ 
    globalX = 1 + x; 
    globalY = 2 + y; 
} 

public void functiontwo(int a , int b) 
{ 
    a=globalX + globalY; 
    b=globalX - globalY; 

    Console.WriteLine(a); 
    Console.WriteLine(b); 
} 

} 
+0

Примечание: вы можете использовать ключевое слово 'ref' для передачи переменных, поэтому значение сохраняется после вызова метода. 'functionone' должен получить переменные, чтобы установить для них 1 и 2, вы передаете значение x, а не переменную. – rsqLVo

0

объяснить мое comment:

int globalX; 
int globalY; 

public void functionone(ref int x, ref int y) 
{ 
    x = 1; 
    y = 2; 
} 

public void functiontwo(ref int a , ref int b) 
{ 
    a = globalX + globalY; 
    b = globalX - globalY; 

    Console.WriteLine(a); 
    Console.WriteLine(b); 
} 


// in main 

functionone(ref globalX, ref globalY); 
// globalX and globalY are now 1 and 2 

functiontwo(ref a, ref b); 
// a = 3 and b = -1 -> 'globalX +/- globalY' 

Таким образом вы можете установить значения любых переменных, которые вы передаете, functionone или functiontwo.

Однако это не выглядит хорошо и, на мой взгляд, это не очень хороший код. Ваша концепция кажется неправильной, поэтому, возможно, вы можете опубликовать описание проблемы, с которой вы столкнулись?

Смежные вопросы