Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 显示类中的数据_C# - Fatal编程技术网

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有关自动属性,请查看