C# 显示类中的数据
所以,我有一张卡片。此类构造函数如下所示:C# 显示类中的数据,c#,C#,所以,我有一张卡片。此类构造函数如下所示: public Cards(int data, string typeIEking, string suitIEspades) { valueOfCard = data; specialCards = typeIEking; suit = suitIEspades; } public Cards(int data, string suitIEspades) { valueOfCard = data; specia
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时,出现的唯一选项是等于,获取hashcode
和ToString
我很困惑为什么会发生这种情况,我不知道如何解决它。
我想象我会做nameOfCard.valueOfCard代码>我假设您的成员变量是私有字段,这样它们就不会出现在您的类之外。您需要为Cards类中的私有字段提供一些公共属性
比如:
private int valueOfCard;
public int ValueOfCard
{
get { return valueofCard; }
private set { valueOfCard = value; }
}
或者你可以把它们变成自动属性
public int ValueOfCar { get; set; }
(注意名称大小写的变化,不是很重要,但采用了一种很好的样式)我假设您的成员变量是私有字段,这样它们就不会出现在您的类之外。您需要为Cards类中的私有字段提供一些公共属性
比如:
private int valueOfCard;
public int ValueOfCard
{
get { return valueofCard; }
private set { valueOfCard = value; }
}
或者你可以把它们变成自动属性
public int ValueOfCar { get; set; }
(注意名称大小写更改,不是必需的,但采用的样式很好)问题:我怀疑您没有为变量声明属性
,或者您没有为变量使用公共
访问修饰符(不推荐)
解决方案:我建议为变量创建属性
,以便在类外访问它们
试试这个:
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;
}
}
问题:我怀疑您没有为变量声明属性
,或者您没有为变量使用公共
访问修饰符(不推荐)
解决方案:我建议为变量创建属性
,以便在类外访问它们
试试这个:
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;
}
}
它看起来像valueOfCard
、specialCards
和suit
所有private
字段,而不是public
属性。将它们更新为public
,您应该能够在类外访问它们
如果未指定任何访问修饰符,则默认情况下字段/属性为private
它看起来像valueOfCard
、specialCards
和suit
所有private
字段,而不是public
属性。将它们更新为public
,您应该能够在类外访问它们
如果未指定任何访问修饰符,则默认情况下字段/属性为private
valueOfCard
、specialCards
和suit
是否都是私有字段?它们必须是公共属性
才能在类之外访问它们。向我们展示另一种方法
请评论,这样我可以说你的答案解决了:D.非常感谢。。我完全忽略了这一点。。我欠你一个人@DaveZych@user3245390NP完成了@用户3245390您应该接受答案,而不是在问题标题中添加“[已解决]”。是否有valueOfCard
、specialCards
和suit
所有私有字段?它们必须是公共属性
才能在类之外访问它们。向我们展示另一种方法
请评论,这样我可以说你的答案解决了:D.非常感谢。。我完全忽略了这一点。。我欠你一个人@DaveZych@user3245390NP完成了@用户3245390您应该接受答案,而不是在问题标题中添加“[已解决]”。这不对,这里的公共和私人成员(valueofCard和valueofCard)之间没有联系。同意。。。。我的观点完全正确;-)但是如果我设置了valueOfCard,那么valueOfCard的值会发生什么变化呢。我不是100%确定这里的要求,但我非常确定OP会希望它们具有相同的值。这不对,这里的公共和私人成员(valueofCard和valueofCard)之间没有联系。同意。。。。我的观点完全正确;-)但是如果我设置了valueOfCard,那么valueOfCard的值会发生什么变化呢。我不是100%确定这里的要求,但我非常确定OP希望它们是相同的值。如果它提到默认情况下字段和属性是private
,答案会有所改进。如果它提到默认情况下字段和属性是private
,答案会有所改进。什么是自动属性?它们与您提供的第一个有什么不同?@user3245390有关自动属性,请查看什么是自动属性?它们与您提供的第一个有什么不同?@user3245390有关自动属性,请查看