Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.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#_Properties_Boolean_Stack Overflow - Fatal编程技术网

C#从单选按钮设置布尔属性

C#从单选按钮设置布尔属性,c#,properties,boolean,stack-overflow,C#,Properties,Boolean,Stack Overflow,我的单选按钮有问题。我要做的是创建一个customer对象,同时我想为customer基类中的每个单选按钮设置一个bool属性。我得到的错误消息是“StackOverflowException未处理”。错误指向CustomerType类中的“IsClient=value;” 这里是我创建Customer对象的地方(在CustomerForm.cs内) CustomerType中的所有属性都是递归的-它们破坏了堆栈 看看这个: public bool IsClient { get { re

我的单选按钮有问题。我要做的是创建一个customer对象,同时我想为customer基类中的每个单选按钮设置一个bool属性。我得到的错误消息是“StackOverflowException未处理”。错误指向CustomerType类中的“IsClient=value;”

这里是我创建Customer对象的地方(在CustomerForm.cs内)


CustomerType
中的所有属性都是递归的-它们破坏了堆栈

看看这个:

public bool IsClient
{
    get { return IsClient; }
    set { IsClient = value; }
}
尝试获取
IsClient
属性的值时,然后尝试获取
IsClient
属性的值。然后尝试获取
IsClient
属性的值

将这些实现为自动实现的属性:

public bool IsClient
{
    get; set;
}
或具有适当的支持字段:

private bool isClient;
public bool IsClient
{
    get { return isClient; }
    set { isClient = value; }
}

CustomerType
中的所有属性都是递归的-它们破坏了堆栈

看看这个:

public bool IsClient
{
    get { return IsClient; }
    set { IsClient = value; }
}
尝试获取
IsClient
属性的值时,然后尝试获取
IsClient
属性的值。然后尝试获取
IsClient
属性的值

将这些实现为自动实现的属性:

public bool IsClient
{
    get; set;
}
或具有适当的支持字段:

private bool isClient;
public bool IsClient
{
    get { return isClient; }
    set { isClient = value; }
}

属性是一个函数。你所写的等同于写作:

public void DoSomething()
{
    DoSomething();  // infinite recursion
}
错误代码:

public bool IsClient
{
    get { return IsClient; }
    set { IsClient = value; }
}
正确代码:

public bool IsClient
{
    get { return _isClient; }
    set { _isClient = value; }
}
private bool _isClient;
或者在C#3.0或更高版本中,您可以对简单的属性使用自动实现的属性:

public bool IsClient { get; set; }

属性是一个函数。你所写的等同于写作:

public void DoSomething()
{
    DoSomething();  // infinite recursion
}
错误代码:

public bool IsClient
{
    get { return IsClient; }
    set { IsClient = value; }
}
正确代码:

public bool IsClient
{
    get { return _isClient; }
    set { _isClient = value; }
}
private bool _isClient;
或者在C#3.0或更高版本中,您可以对简单的属性使用自动实现的属性:

public bool IsClient { get; set; }

@詹姆斯刘易斯-这是一个选择。谢谢!!我使用了自动实现的属性,它工作得很好@user1051477-记住对所有属性执行此操作,而不仅仅是
IsClient
@jameslewis-这是一个选项。谢谢!!我使用了自动实现的属性,它工作得很好@user1051477-记住对所有属性执行此操作,而不仅仅是
IsClient