1

ブール値のプロパティとコレクションを持つオブジェクトを作成しました。

私がやること:

投稿時に呼び出されるメソッドがあり、オブジェクトを返す別のメソッドを呼び出します。私の問題は、オブジェクトのプロパティを取得できないことです。

public object methodThatReturnsAnObject(string a, string b)   
{
    object data = new {isSaved = false, personsToCredit = ""}

    // perform my code and if all is valid i set values to my object properties and return the object

    data = new {isSaved = valid, personsToCredit = persons }

    return data;    
}

私の他の方法:

object Information = methodThatReturnsAnObject(string a, string b);

私の問題は何ですか?オブジェクトをデバッグするInformationと、手に入れたい2つのプロパティが含まれていますが、入力Information.isSavedすると、情報に定義が含まれていないと表示されisSavedますか?

4

1 に答える 1

7

オブジェクトにこれらの動的プロパティがあることをコンパイラが認識していることを期待しています。

これは、適切に使用する必要がある基本的なオブジェクト指向です。

必要なことは、(1) 2 つのプロパティを持つ特定のクラスを定義し、メソッドが代わりにそのクラスを返すようにするか、(2)dynamicの代わりに を使用することですobject

アプローチの例 #1:

public class UpdateInfo
{
    public bool IsSaved {get; set;}

    ...
}


public UpdateInfo MethodThatReturnsUpdateInfo(string a, string b)
{
    ...
}

アプローチ 1 を使用できない場合にのみ使用する必要dynamicがありますが、すべてのケースの 99.9% でアプローチ 1 が適していると言えます。

于 2013-09-16T08:20:21.437 に答える