0

私はプロパティをよく理解していません。コード行:method2(x.str1、x.str2、x.str3、x.str4); ---「オブジェクト参照がオブジェクトエラーのインスタンスに設定されていません」をスローします。どんな考えでもありがたいです。x.str1が解決されていませんか?

(コードを追加し、既存のセットアップに機能を追加しています。メソッドとプロパティを使用してクラスmyPropertyを初期化します。)

otherC#を使用する

   class Test{

    private myProperty x;

    private string  str1, str2, str3, str4;

    private myProperty A
            {

                get { return x; }          

                set
                {

                    str1 = value.str1;
                    str2 = value.str2;
                    str3 = value.str3;
                    str4 = value.str4;

                }             
            }

    public void myMethod()
        {

               Test tst = new Test();
               myProperty x = new myProperty();
               //Assigning property varaibles:
                  x.str1 = "this";
                  x.str2 = "is";
                  x.str3 = "my";
                  x.str4 = "test";

               try
                {

                    tst.method2(x.str1, x.str2, x.str3, x.str4);
                }
                catch(Exception)
                {
                    throw;
                }
            }

    public void method2(string str1, string str2,string str3, string str4)
     {
     }

    }

    OtherC#.cs  contains the definition for myProerty class

    namespace temp
    {
    public class xyx {some code;}
    public interface abc {some code};
    public class myProperty {

            public string str1 { get; set; }

            public string str2 { get; set; }

            public string str3 { get; set; }

            public string str4 { get; set; }
    }
    }
4

2 に答える 2

5

myProperty x呼び出したときにオブジェクトのインスタンスに設定されていません

x.str1 = "this";

最初に初期化する必要があります(たとえば、コンストラクターコードで)。

于 2012-05-18T18:02:28.293 に答える
3

変数は、オブジェクトへの単なる参照です。それ自体はオブジェクトではありません。したがって、オブジェクトを参照するように設定するまで、変数はnullです。この場合、おそらくそれを新しいオブジェクトと等しくしたいだけなので、1つをインスタンス化する必要があります。たとえば、次の行を変更します。

private myProperty x;

これに:

private myProperty x = new myProperty();

これは、値型(構造)ではなく、参照型(クラス)にのみ当てはまることを明確にする必要があります。

于 2012-05-18T18:03:18.653 に答える