初心者ですがC#でメソッドの返り値2つ目ってどうやって出力すれば…?
■ このスレッドは過去ログ倉庫に格納されています
Console.WriteLine(c(5,5));
int c(int a,int b)
{
return a = a + b;
return b = 11;
}
これだと10って出ます
11を返すにはどうすればいいでしょうか そりょreturnしてるんだからそうなるだろ
Cだとreturn a,bとかでいけないんだっけ?パソコン開いて確認するのがだるい てか、Cのルールって戻り値1つじゃね
2つ返したいなら片方グローバル変数で持って入れるとかポインタで入れるとかすれば 11のほうは到達できないって警告は出るかもね
戻り値をリスト化するかクラス化するかoutするか >>14
じゃあルールを覚えよう
ルールで出来ないってあるんだから出来ないもんはできない
みんなが挙げてる別のやり方するしかない まずお前が何を書いたのか日本語訳してみれや
「ひとつの整数値を返すcという関数を考えてください。それは整数aと整数bを受け取って計算するものです」から始まってるだろ?
ひとつだけ返すって言ってんだから一つしか返せないに決まってんじゃん >>9
ありがとうありがとうありがとうありがとうありがとうありがとうありがとうありがとうありがとうありがとうありがとうありがとうありがとうありがとううわぁああああああ Cの関数においてルールは、引数は好きな数だけ渡せる、戻り値は1つまで。
これがルール なんか2つ以上変数同時に使うときはとりあえずコロンとか挟むといいと思ってるけどどうだろう あ、return a =a+b;しちゃってるからreturn b;まで届かないのか
a=a+b;の前のreturnを消してはいかがでしょう 基本的には1メソッドでは1つの目的の事をさせて
メソッドを組み合わせたメソッドでは最終的な答えをListやクラス型のインスタンスで出力する
例外的にref out in と言ったポインタやstatic変数を使う事も出来る >>19
分かりやすい。
ユーチューブの先生は動画でそんなこと言ってなかったから知らなかった
俺のイメージでは最初に書いたコードで
10,11
が表示されるもんだと思ってた int a = 5, b = 5;
c(ref a, ref b);
Console.WriteLine("a={0},b={1}",a,b);
private static void c(ref int a, ref int b)
{
a = a + b;
b = 11;
}
ほとんど変えなくていいからそんなに難しくない ここまで全員ValueTuple知らない老害とかVIPも終わりだな
(int, int) c(int a,int b)
{
return (a + b, 11)
}
今はこれでできる refとかいうレガシー機能使うなタプルにしろ
Console.WriteLine(c(5,5).ToString());
(int, int) c(int a,int b)
{
return (a+b, 11);
} ■ このスレッドは過去ログ倉庫に格納されています