我正在學習C#並遇到錯誤。我所有的方法都是公開的。我正在模擬一本書中的代碼,其中指出「假設您定義了一個名爲Vector的類,並且該Vector是一個引用類型並且具有一個名爲Value的int成員變量」,並且它繼承了Program.cs代碼(我複製了該代碼) 。所以我試圖模擬Vector類,並且當我編譯它時,由於其保護級別,Vector.Value無法訪問。Vector.Value由於其保護級別而無法訪問
的Program.cs:
using System;
namespace ReferenceType
{
public class Program
{
public static void Main(string[] args)
{
Vector x, y;
x = new Vector();
x.Value = 30;
Console.WriteLine(y.Value);
y.Value = 50;
Console.WriteLine(x.Value);
}
}
}
Vector.cs:
namespace ReferenceType
{
public class Vector
{
private int Value;
public int GetterSetter{
get { return Value; }
set { Value = value; }
}
}
}
哪兒了'GetterSetter'來自?你爲什麼要聲明'Value'是私人的?在你的「假設:」引用中似乎沒有提到那些東西。 –
您創建了一個屬性'GetterSetter'而不是'Value',並創建了一個名爲'Value'的私有支持字段。我不認爲這就是你想要做的。也許你想寫'public int Value {get; set;}'或'int _value; public int Value {get {return _value;} set {_value = value}};'? –
.NET中的屬性不僅僅是getter/setter。它們很重要,是班級界面的一部分。它們分別出現在元數據中,被序列化/反序列化,映射到數據庫表等。後臺字段只是一個實現細節 –