2

C# でパラメーターを介してプロパティのオブジェクト インスタンスを取得するにはどうすればよいですか? それが変数インスタンスと呼ばれるかどうかはわかりませんが、ここに私が意味するものがあります:

通常、これを行うと、C# で変数の値を取得します。

void performOperation(ref Object property) {
   //here, property is a reference of whatever was passed into the variable
}

Pet myPet = Pet();
myPet.name = "Kitty";
performOperation(myPet.name);   //Here, what performOperation() will get is a string

私が達成したいのは、次のように、クラスのプロパティからオブジェクトを取得することです。

void performOperation(ref Object property) {
   //so, what I hope to achieve is something like this:

   //Ideally, I can get the Pet object instance from the property (myPet.name) that was passed in from the driver class
   (property.instance().GetType()) petObject = (property.instnace().GetType())property.instance();  

    //The usual case where property is whatever that was passed in. This case, since myPet.name is a string, this should be casted as a string
   (property.GetType()) petName = property;   
}

Pet myPet = Pet();
myPet.name = "Kitty";
performOperation(myPet.name);   //In this case, performOperation() should be able to know myPet from the property that was passed in

これinstance()は、プロパティのインスタンス オブジェクトを取得することを示すための単なるダミー メソッドです。私はC#が初めてです。これは概念的には達成したいことですが、C# でどのように実現できるかわかりません。Reflection API を調べましたが、これを行うために何を使用すればよいかまだよくわかりません。

では、C# でパラメーターを介してプロパティのオブジェクト インスタンスを取得するにはどうすればよいでしょうか。

4

1 に答える 1

1

プロパティ値をメソッドに渡す場合、たとえば次のようになります。

SomeMethod(obj.TheProperty);

次に、次のように実装されます。

SomeType foo = obj.TheProperty;
SomeMethod(foo);

基本的に、そこから親オブジェクトを取得することはできません。たとえば、次のように個別に渡す必要があります。

SomeMethod(obj, obj.TheProperty);

さらに、値は任意の数のオブジェクトの一部である可能性があることに注意してください。文字列インスタンスは、0、1、または「多数」のオブジェクトで使用できます。あなたが求めることは基本的に不可能です。

于 2012-10-21T09:01:57.960 に答える