سؤال

ولقد قرأت عن كيف في ASP.NET 3.5 يمكنك تعريف خصائص في C #

public DateTime DisplayDate
{
     get;
}

وبدلا من

private DateTime _displayDate
public DateTime DisplayDate
{
     get {return _displayDate;}
}

<وأ href = "http://weblogs.asp.net/scottgu/archive/2007/03/08/new-c-orcas-language-features-automatic-properties-object-initializers-and-collection- initializers.aspx "يختلط =" نوفولو noreferrer "> مثل هذا المنصب يفسر.

وسؤالي هو، داخل الطبقة، كيف يمكنني الوصول إلى المتغير الخاص؟

وعلى سبيل المثال بدلا من هذا

public MyClass(DateTime myDisplayDate)
{ _displayDate = myDisplayDate; }

وماذا يجب أن يسند إلى؟ هل هو الممتلكات العامة؟

public MyClass(DateTime myDisplayDate)
{ DisplayDate = myDisplayDate; }

هل هذا صحيح؟

هل كانت مفيدة؟

المحلول

public DateTime DisplayDate
{
     get; private set;
}

public MyClass(DateTime myDisplayDate)
{ 
    this.DisplayDate = myDisplayDate; 
}

نصائح أخرى

وخصائص القياس مثل هذه (والتي لا تقتصر على ASP.NET) هي هناك لذلك لم يكن لديك للتعامل مع الميدان الخاص. إذا كنت ترغب في تعيين قيمة العقار، استخدام الخاصية نفسها وإضافة اضع خاصة (لذلك لا يمكن إلا صفك تعيينها)

public DateTime DisplayDate
{
    get; 
    private set;
}

وتحتاج دائما لاعلان كل من جالبة واضعة مع c # 3.0 خصائص التلقائي - انظر إجابات أخرى - هو خدعة للاحتفال واضع طابع الخصوصية.

public Foo { get; private set; }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top