所以,我有一张卡片。这个类构造函数如下:
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时,出现的唯一选项是Equals
,GetHashCode
和{{1} }。
我很困惑为什么会发生这种情况,而且我不确定如何解决它。
我想象我只做ToString
答案 0 :(得分:5)
看起来valueOfCard
,specialCards
和suit
所有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;
}
}