我正在学习C#并遇到了错误。我所有的方法都是公开的。我正在模拟一本书中的代码,该书说明“假设你已经定义了一个名为Vector的类,而Vector是一个引用类型,并且有一个名为Value的int成员变量:”它继续使用Program.cs代码(我复制了) 。所以我试图模仿Vector类,当我去编译时,由于其保护级别,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; }
}
}
}
答案 0 :(得分:3)
您正在尝试访问Vector类的private
成员,但您有一个public
属性公开private
字段Value
,应该使用此属性。
试试这段代码,
using System;
namespace ReferenceType
{
public class Program
{
public static void Main(string[] args)
{
Vector x, y;
x = new Vector();
// Assign integer value to our public property "GetterSetter"
x.GetterSetter= 30;
// Access value of "Value" via "GetterSetter" property
Console.WriteLine(x.GetterSetter);
y.GetterSetter= 50;
Console.WriteLine(y.GetterSetter);
}
}
}
更新最好将您的代码更改为
using System;
namespace ReferenceType
{
public class Program
{
public static void Main(string[] args)
{
Vector x, y;
x = new Vector();
x.Value = 30;
Console.WriteLine(x.Value);
y.Value = 50;
Console.WriteLine(y.Value);
}
}
}
//Vector.cs
using System;
namespace ReferenceType
{
public class Vector
{
private int _value;
public int Value{
get { return _value; }
set { _value = value; }
}
}
}
您可以在此处详细了解访问修饰符msdn.microsoft.com/en-us/library/wxh6fsc7.aspx