获取对另一个类中的变量的访问权限

时间:2015-04-27 19:41:44

标签: c# properties

几分钟前我 HAD 的问题。

为简单起见?我有一个"会员"上课和#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)来获取变量。

这是正确或错误的做法吗?为我的会员提供了一些代码,显示了我使用的属性。

3 个答案:

答案 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)

这是正确的方法。你也可以将你的变量声明为静态,但对于那种情况来说这是一个糟糕的实践。有关更多信息,您应该看一下面向对象编程中的封装。