• ベストアンサー

C#で配列の戻り値について

επιστημη(@episteme)の回答

回答No.3

System.Tupleを返してはいかがかと。 using System; public class Program { static Tuple<bool,string> fun(int n) { if ( n %2 == 0 ) return Tuple.Create(true,"偶数"); else return Tuple.Create(false,"奇数"); } public static void Main() { Tuple<bool,string> result; result = fun(1); Console.WriteLine("{0}:{1}", result.Item1, result.Item2); result = fun(2); Console.WriteLine("{0}:{1}", result.Item1, result.Item2); } }

komegu_66
質問者

お礼

アドバイスありがとうございます。 初心者なもので、System.Tupleというのを知りませんでした。 調べてみます。

関連するQ&A

  • 戻り値を配列で受け取りたいのですが...

    とても初歩的な質問をしてしまっていたらごめんなさい。 戻り値を配列で受け取りたいのですが、上手く出来ず困っています。 ヒント・アドバイス等いただけないでしょうか? このようなプログラム(一部省略)を作成したところ、無事に動作確認ができました。  public String test(){    String a = null;    while(rs.next()){      a = rs.getString("b");    }   return a;  }  //受け取り側  String a = test(); ですが、aを複数取得したいと思い、プログラムを下記のように変更するとエラーが出てしまうのです。  public String[] test(){    String[] a = null;    while(rs.next()){      a = rs.getString("b");    }   return a;  }  //受け取り側  String[] a = test(); このように変更すると、 a = rs.getString("b");の部分と String[] a = test();の部分で java.lang.NullPointerExceptionというエラーが出て動きません。 NullPointerExceptionということは、aに値がないと言われているのかな? とも思ったのですが、aには必ず値が入っています。 このような配列のやり取りはできないのでしょうか? もしくは、書き方がおかしいのでしょうか?

    • ベストアンサー
    • Java
  • Functionでの戻り値のとり方

    こんばんわ。 以下のように、Functionで引数に配列を指定して、戻り値も配列で取得したいのですが、方法としては以下のようにしかできないのでしょうか? ------------------------- '配列を宣言 dim Ary() as string dim AryRet() as string '戻り値の配列 Call Get_Ary(Ary(),AryRet()) ------------------------- Function Get_Ary(Ary() as string , AryRet() as string) 'Ary()を参照して、AryRet()を取得する End Function という風に書いているのですが、Functionのところを以下のように 書くのは無理でしょうか? うまく取れないというのはやっぱ無理なのかな・・ ------------------------- '配列を宣言 dim Ary() as string dim AryRet() as string '戻り値の配列 AryRet() = Get_Ary(Ary()) Function Get_Ary(Ary() as string) As string 'Ary()を参照して、AryRet()を取得する 'それを関数の戻り値とする Get_Ary = AryRet(index) End Function このように書くと、配列の最後のインデックスの値だけ取れてしまう ようなんですが、、やっぱ配列で返すというのは上記のやり方でないと 無理なのでしょうか? 詳しい方ご教示願います。

  • 配列を関数の戻り値に使う

    こんばんわ。 PHP5で配列を関数の戻り値として返す方法がわからず今回投稿させていただきました。 配列は1次元で 1,2,3 の値が a という配列に格納されています。 呼び出された関数(testメソッド)で a配列を返し、bで受けようとするのですが、bの値には NULL となっています。 返す際に return $a; としており、 $b=$obj-〉test(); で、aをbで受けようと考えております。 配列を返す場合は普通にretuneで返すだけではダメなのでしょうか。 解決方法がお分りの方がいらっしゃいましたらご教授のほうおねがいします。

    • ベストアンサー
    • PHP
  • is_callable()の第二引数の使い方

    いつもお世話になっています。 PHPの勉強を始めた初心者です。 is_callable()の第二引数の使い方がよく分りません。 true に設定すると、$name が文字列型である場合には、常に bool(true)を返します。 どういう時に、役に立つのでしょうか? お教えいただければ幸いです。 <?php // http://php.net/manual/ja/function.is-callable.php: /* bool is_callable ( callback $name [, bool $syntax_only = false [, string &$callable_name ]] ) syntax_only TRUE の場合、この関数は単に name が関数またはメソッドであるかどうかだけを調べます。 文字列以外の型の変数や不正な形式の配列は、引数として受け付けられません。 */ class someClass { function someMethod() { print "hello from someMethod\n"; } } $varInt = 1; $varString = "string"; $varObject = new someClass(); $varMethod = array($varObject, 'someMethod'); var_dump(is_callable($varInt, true)); // bool(false) var_dump(is_callable($varInt, false)); // bool(false) var_dump(is_callable($varString, true)); // bool(true) var_dump(is_callable($varString, false)); // bool(false) var_dump(is_callable($varMethod, true)); // bool(true) var_dump(is_callable($varMethod, false)); // bool(true) $varObject->someMethod(); [study_php@localhost ch05]$ php is_callable_Test.php bool(false) bool(false) bool(true) bool(false) bool(true) bool(true) hello from someMethod [study_php@localhost ch05]$

    • 締切済み
    • PHP
  • 関数戻り値が連想配列の場合

    こんにちわ。 PHP5について質問です。 あるユーザ関数の戻り値が連想配列である場合、 ユーザ関数の実行~戻値の特定のキーの値を取得 までを1行で取得する方法があれば教えてください。 例) function hoge() {  return array("fuga" => "1", "moge" => "2"); } ここで"moge"の値を一発で参照したいと考えています。 通常では、 $result = hoge(); print $result["moge"]; のようにしていますが、これを一行で実現できる方法はありますでしょうか。

    • ベストアンサー
    • PHP
  • ある値が、配列のなかに存在するか、知る関数

    お世話になります ある値が、配列のなかに存在するか、知る関数、はありませんか たとえば、配列:Aryに、10,20,30,40、と入っている 値20、をもってチェックしたとき、True、が返り 値22、ではFalse、が返る こんな関数ないでしょうか ACCESSのVBAです よろしくお願いします

  • 戻り値を使う問題について

    <問題> 以下のクラスを作成せよ。 「mainメソッド」 1)Aisatuクラスのオブジェクト作成。 2)Aisatuクラスのohayouメソッドを呼び出し、  戻り値を取得して表示する。 3)Aisatuクラスのkonnitiwaメソッドを呼び出し、  戻り値を取得して表示する。 4)Aisatuクラスのkonbanwaメソッドを呼び出し、  戻り値を取得して表示する。 「Aisatuメソッド」 ohayouメソッド ・「おはようございます」という文字列を戻り値とする。 ・「こんにちは」という文字列を戻り値とする。 ・「こんばんは」という文字列を戻り値とする。 <実行結果> おはようございます こんにちは こんばんは ************************************************************ 上記の質問についてのプログラムなんですが、いまいちクラスとか メソッドとかよく分からなくて、ちゃんと実行できません。 コンパイルは通るのですが、実行しようとすると、 java.lang.NoSuchMethodError のエラーが出てしまいます。 メソッドが見つからないということでしょうか? 間違っているところを教えて下さい。 よろしくお願いします。 class Aisatu { private String oha; private String koni; private String koba; public String aiOhayou(String o) { oha = o; return oha; } public String aiKonnitiwa(String n) { koni = n; return koni; } public String aiKonbanwa(String b) { koba = b; return koba; } } class Greet02 { public static void main(String args[]) { Aisatu as = new Aisatu(); as.aiOhayou("おはようございます"); String ohayou = as.aiOhayou("おはようございます"); System.out.println(ohayou); as.aiKonnitiwa("こんにちは"); String konnitiwa = as.aiKonnitiwa("こんにちは"); System.out.println(konnitiwa); as.aiKonbanwa("こんばんは"); String konbanwa = as.aiKonbanwa("こんばんは"); System.out.println(konbanwa); } }

    • ベストアンサー
    • Java
  • javascript関数の戻り値でphpの条件分岐

    こんばんは。 またまたプログラミングで詰まってしまいました・・・。 <?php    echo "<script> funcJS(); </script>"; //javascriptの関数。戻り値true/false    if(funcJS()の戻り値がtrueかどうか){       <~phpの処理~>     } ?> のようなプログラムがあったとして、funcJS()の戻り値の値によって、『phpの処理』を行うかどうかを決定したいのですがそのアルゴリズムが思いつきません。 色々と試行錯誤はやってみて、 (1)phpの変数にfuncJS()の戻り値を格納して、if文で条件分岐  $value = "<script> funcJS(); </script>";   しかし、これは$valueに戻り値を入れることができませんでした。 (2)javascript変数に戻り値を格納して、javascript内のif文で条件分岐 <?php    echo "<script> var value=funcJS(); </script>"; //javascriptの関数。戻り値true/false    echo "<script> if(value == 'true'){ </script>";       <~phpの処理~>    echo "<script> } </script>"; ?>  これも"}"がないと怒られてしまいました。 自分で思いつく限りは試してみたのですが、他に方法が思い浮かばず頭を抱えている状態です。 何か良い方法を知っている方、思いついた方、よろしくお願いします。

  • WEBサーバーに文字列を送り戻り値取得

    WEBサーバーに文字列送信の開発を行っています。 開発環境はVB6(アプリ部分)+VB2005(DLL部分)です。 文字列生成はVB6でしています。 サーバーに文字を送るところは.netでDLLを作っています。 VB6はそのdllを参照し関数をcallしています。 送信した文字列に何か不備等があればサーバーから1から5までのエラー区分が返ってくるのですが、戻り値を取得することができません。 どうすれば取得できるのでしょうか? <<サーバーとの通信方法>> サーバーに文字列を送るのはWebClientのUploadStringAsyncを使用しています。 サーバー側で文字列が送られているのは確認できています。 サーバーの戻り値を取得するのはUploadStringCompletedイベントで取得していますが、 通信が終わりVB6側に戻ってきた時にUploadStringCompletedイベントが起きているらしく戻り値を取得できません。 どなたかご教授いただければと思います。

  • C#でのDLLのメソッドの作り方

    MEFを使ってC#のプログラムを作っています。 DLL側のメソッドとして public bool ブーリアン(){     return true; } public string ストリングス(){ return "文字列"; } のような、戻り値をDLLからメインに送ることはできるのですが、 public void ナビ(int a){ webBrowser1.Navigate(http・・・・); Thread.Sleep(a); webBrowser1.Navigate(http・・・・); Thread.Sleep(a); }//webBrowser1はメインにある このような処理をDLLに入れようとすると、当たり前ですが「webBrowser1」なんてないぞ っと怒られてしまいます。 どのように渡せばよいのでしょうか?