显示类中的数据

时间:2014-03-11 16:25:04

标签: c#

所以,我有一张卡片。这个类构造函数如下:

public Cards(int data, string typeIEking, string suitIEspades)
{
    valueOfCard = data;
    specialCards = typeIEking;
    suit = suitIEspades;
}

public Cards(int data, string suitIEspades)
{
    valueOfCard = data;
    specialCards = null;
    suit = suitIEspades;
}

我之前已将数据放入此卡中,但现在我想显示数据(在构造函数中命名为valueOfCard),适用于它,以及它是否是特殊卡(即国王)。

所以我将此卡传递给另一种方法,但现在我想在结果中显示数据,但是当我输入cardName时,出现的唯一选项是EqualsGetHashCode和{{1} }。

我很困惑为什么会发生这种情况,而且我不确定如何解决它。 我想象我只做ToString

3 个答案:

答案 0 :(得分:5)

看起来valueOfCardspecialCardssuit所有private字段而不是public属性。将它们更新为public,您应该能够在课堂外访问它们。

如果您未指定任何访问修饰符,则字段/属性默认为private

答案 1 :(得分:0)

我假设您的成员变量是私有字段,因此它们不会出现在您的课程之外。您需要为Cards类中的私有字段提供一些公共属性。

类似的东西:

private int valueOfCard;
public int ValueOfCard 
{ 
   get { return valueofCard; } 
   private set { valueOfCard = value; } 
}

或者您可以将它们变成自动属性

public int ValueOfCar { get; set; }

(注意名称改变,不是必要的,但采用的是一种好的风格)

答案 2 :(得分:-1)

问题:我怀疑您没有为变量声明properties,或者您没有为变量使用public访问修饰符(建议不要这样做)。< / p>

解决方案:我建议您为变量创建properties,以便在课堂外访问它们。

试试这个:

class MyClass
{

    public int valueOfCard{get;set;}
    public string specialCards{get;set;}
    public string suit{get;set;}

    //here your constructors.
    public Cards(int data, string typeIEking, string suitIEspades)
    {
        valueOfCard = data;
        specialCards = typeIEking;
        suit = suitIEspades;
    }

    public Cards(int data, string suitIEspades)
    {
        valueOfCard = data;
        specialCards = null;
        suit = suitIEspades;
    }
}