2011-09-15 9 views
-1

だから私はこれにいくつか問題があります。私はちょっとC#に新しいです。すべての私の属性はプライベートで、私は伝統的なgetとsetを使用しています。これは抽象クラスです。しかし、子クラスでは別のメソッドで試してみると、コンパイラはメソッドとして使うことはできないと言います。しかし、私がアクセサリやミューテータのC++のやり方をすれば、うまく動作します。これを回避する方法はありますか?C#でgetキーワードを使用して継承に関連する問題

ありがとうございます。

私は気にしません。私はちょうど7時間のようにコーディングしています。この割り当てを学校でやるためにコーディングしています。私の脳は正しく働いていません。

+2

が鳴る... –

+2

は、おそらくあなたが属性を言うとき、あなたがフィールドを意味しています。この1 :)を解決するために、もう少しコードが必要ですか?伝統的なGet/Setによって、あなたはmutatorメソッドを書いているのですか、あるいはあなたはプロパティを使用していますか?プロパティはメソッドとして呼び出されず、C++のパブリックフィールドを呼び出すのに慣れているように使用されます – JRoughan

+0

「しかし、私がアクセサリとミューテータのC++のやり方をすれば、それはうまくいきます」あなたはC# ECMAのミューテータは言語の下にある。 –

答えて

1

これは、再尋ねる。あなたは `protected`をしたいが、いくつかのコードを投稿するよう

public abstract class Base 
{ 
    // Automatic Property 
    public string Prop1 { get; set; } 

    // With backing field 
    private string prop2; 
    public string Prop2 
    { 
     get { return prop2; } 
     set { prop2 = value; } 
    } 
} 

public class Derived : Base 
{ 
    public string Prop3 { get; set; } 
} 

public class AnotherClass 
{ 
    void Foo() 
    { 
     var derived = new Derived(); 
     // Can get and set all properties 
     derived.Prop1 = derived.Prop1; 
     derived.Prop2 = derived.Prop2; 
     derived.Prop3 = derived.Prop3; 
    } 
} 
関連する問題