2017-06-30 14 views
-5
static void CatAge(Cat cat) 
{ 
    cat.Age = 12; 
} 
class Cat 
{ 
    public int Age 
    { 
     get; 
     set; 
    } 
} 

をインスタンス化してしまったことなく、宿泊施設に直接アクセスすることができましたインスタンス化?この方法は、Catの引数を受け入れるので、変数の猫がクラスキャットなしで直接(cat.Ageを)プロパティにアクセスすることができる理由変数は、私たちが変数<strong>猫</strong>は猫</strong>が得たクラス<strong>せずに、直接(<strong>cat.Age</strong>を)プロパティにアクセスすることができ、なぜメソッドを宣言すると、オブジェクトがC#で

+2

ので:

は、インスタンスに渡す方法はこちらをご覧ください。いずれにしても、そのプロパティは 'public'なのでアクセスできますが、インスタンスが' null'(初期化されていない)の場合、実行時に 'NullReferenceException'が返されます。 –

+1

あなたの方法で 'cat'とは何かを注意深くやめてください。それはどのタイプですか?それはどんな価値がありますか? –

+0

'CatAge'を呼び出すと、インスタンス化された' Cat'を渡します。それ以外の場合は、* NULL *を渡してNREを取得します。 – user3185569

答えて

1

をインスタンス化してしまいました。メソッドをインスタンスまたはnullと指定することができます。後者の場合はNullReferenceExceptionとなります。この方法は、初期化またはない可能性がありますCat` `型の引数を取る

Cat cat = new Cat() { Age = 1 }; 

CatAge(cat); // see: cat is a variable which has an instance assigned to it 
関連する問題

 関連する問題