2017-12-05 4 views
1

メソッドにtypeオブジェクトのインスタンスを作成し、そのメソッドに2つのプロパティを追加し、メソッドの結果としてオブジェクトを返したいとします。このタイプオブジェクトにプロパティをパッキングしてメソッドの結果として返します

+0

それはあなたのコードは、あなたが記述しているまさにありませんように見えます。あなたの質問は何ですか? –

+0

hmしかし、私がリターンを書いた行では、割り当てられていない変数を使用していると言われています。終了したら、それらのプロパティを持つオブジェクトを持っていますか?あなたが私を理解してくれることを願っています – makima89

+0

正確には名前が現在のコンテキストに存在しません – makima89

答えて

0

Tuple<T1, T2>が欲しくない場合は、dynamicが唯一の選択肢です。

public dynamic method() 
{ 
    TypeOfClassA a; 
    int b; 
    if(method(out a, out b)) 
    { 
     var res = new {a=a, b=b}; 
     return res; 
    } 

    return null; // You need to return something here. What happens if the if statement is not executed? 
} 

あなたはこのようmethodを呼び出すことができます。

dynamic val = method(); 
Console.WriteLine(val.a); // or "val.b" 
+0

hm私は別のエラーを除いて、すべてを得ました。私は変数として宣言しました 'TypeOfClassa lastA TypeOfClassa int lastB int b'次に作成された新しいオブジェクト' {lastA = a、lastB = b '..}を割り当てようとしていますが、lastA lastBは割り当てられていますが使用されていませんどのように私はout変数でメソッド呼び出しの後にこの値を使用するか?あなたが私を得ることを願って! – makima89

+0

'lastA'と' lastB'は必要ありません。削除してください。それらはあなたの匿名クラスのプロパティ名です。彼らは変数ではありません! @ makima89 – Sweeper

+0

これは今、うまくいらっしゃいましたが、最後の文章を読むために私にリンクをいくつか送ってもらえたら、本当にそれが得られないので、新しく作成したオブジェクトに新しいプロパティを使用して値を割り当てるのは当然です。私はその方法から取った。 :) – makima89

0

あなたの問題のような

public object method() 
{ 
TypeOfClassA a; 
int b; 
if(method(out a, out b)) 
{ 
res = new {a=a, b=b}; 
} 
return res; 
} 

何かがreturn文です。あなたがif-bodyを入力しない場合、変数resは、それが作成された場合、我々は唯一、resを返す調整スニペットで

public object method() 
{ 
    TypeOfClassA a; 
    int b; 
    if(method(out a, out b)) 
    { 
     res = new {a=a, b=b}; 
     return res; 
    } 

    return null; 
} 

宣言されていないです。それ以外の場合はnullを返します。

関連する問題