为简单起见?我有一个"会员"上课和#34;比赛"类。
我试图访问" MemType" Member类中的变量(这是一个私有属性),因为我想将它与" RaceType"
进行比较 private string MemType;
/// <summary>
/// Username holds the Members Username (JM6491SHR, MM5642SHR)
/// </summary>
private string Username;
/// <summary>
/// Number of races that the racer has run (1, 10, 134)
/// </summary>
private int NoRacesRun;
/// <summary>
/// The % of Races that the racer has won (0.0%, 50.6%, 13.8%)
/// </summary>
private float PerRacesWon;
private string MemPic;
private string MemClub;
private bool Gender;
private int MemExp;
/// <summary>
/// Need a get property for MemType to compare it to a Race type (used for validation)
/// </summary>
public string memType { get { return MemType; } }
(变量的原因是,如果种族和成员都不是&#34;高级&#34;例如,那么成员不能参加比赛,因为他们不符合类型要求)< / p>
我使用了一个getter(没有setter)来获取变量。
这是正确或错误的做法吗?为我的会员提供了一些代码,显示了我使用的属性。
答案 0 :(得分:1)
是只有一个吸气剂的财产将适用于您的情况。相反,您可以将自动实现的属性与此类
这样的私有设置器一起使用public string MemType { get; private set }
请记住,根据微软命名约定 - 私有成员需要_memType,公共属性应该以大写字母开头,如 - MemType。在你的例子中不是反过来。
答案 1 :(得分:0)
我相信您尝试做的事情如下:
public class Example
{
private string demo;
public class Example(string demo)
{
this.demo = demo;
}
public string Demo
{
get { return this.demo; }
private set { this.demo = value; }
}
}
现在在一个完全独立的课程中,你会:
public class ExampleCont
{
private Example example;
public ExampleCont(Example example)
{
this.example = example;
}
}
现在ExampleCont
期间,您可以通过example.Demo
访问您的媒体资源。希望这会对你有所帮助。
答案 2 :(得分:-1)
这是正确的方法。你也可以将你的变量声明为静态,但对于那种情况来说这是一个糟糕的实践。有关更多信息,您应该看一下面向对象编程中的封装。