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

具有特定值的C#对象构造函数

具有特定值的C#对象构造函数,c#,parameters,constructor,C#,Parameters,Constructor,我希望能够只允许自定义对象方法使用某些值。我想到的第一个例子是VB msgbox和您可以选择的一组按钮所使用的特定值 MsgBox("Message", vbYesNo,"title") 如何在C#中对自定义对象执行同样的操作 该方法将根据发送的值搜索特定区域 object.method(SearchArea1); object.method(SearchArea2); 我希望能够键入SearchArea1或SearchArea2(不作为字符串),就像您使用vbYesNo、vbCanc

我希望能够只允许自定义对象方法使用某些值。我想到的第一个例子是VB msgbox和您可以选择的一组按钮所使用的特定值

 MsgBox("Message", vbYesNo,"title")
如何在C#中对自定义对象执行同样的操作

该方法将根据发送的值搜索特定区域

 object.method(SearchArea1);
 object.method(SearchArea2);
我希望能够键入SearchArea1或SearchArea2(不作为字符串),就像您使用vbYesNo、vbCancel一样

这有意义吗?

您可以定义一个,然后将其用作
方法的参数

public enum SearchArea 
{
    SearchArea1,
    SearchArea2
}

public void method(SearchArea searchArea) 
{
    switch (searchArea)
    {
        case SearchArea.SearchArea1:
            // your logic for SearchArea1
            break;
        case SearchArea.SearchArea2:
            // your logic for SearchArea2
            break;
        default:
            throw new ArgumentException("Logic not implemented for provided search area");
    }
}
您可以定义一个,然后将其用作
方法的参数

public enum SearchArea 
{
    SearchArea1,
    SearchArea2
}

public void method(SearchArea searchArea) 
{
    switch (searchArea)
    {
        case SearchArea.SearchArea1:
            // your logic for SearchArea1
            break;
        case SearchArea.SearchArea2:
            // your logic for SearchArea2
            break;
        default:
            throw new ArgumentException("Logic not implemented for provided search area");
    }
}
您可以定义一个,然后将其用作
方法的参数

public enum SearchArea 
{
    SearchArea1,
    SearchArea2
}

public void method(SearchArea searchArea) 
{
    switch (searchArea)
    {
        case SearchArea.SearchArea1:
            // your logic for SearchArea1
            break;
        case SearchArea.SearchArea2:
            // your logic for SearchArea2
            break;
        default:
            throw new ArgumentException("Logic not implemented for provided search area");
    }
}
您可以定义一个,然后将其用作
方法的参数

public enum SearchArea 
{
    SearchArea1,
    SearchArea2
}

public void method(SearchArea searchArea) 
{
    switch (searchArea)
    {
        case SearchArea.SearchArea1:
            // your logic for SearchArea1
            break;
        case SearchArea.SearchArea2:
            // your logic for SearchArea2
            break;
        default:
            throw new ArgumentException("Logic not implemented for provided search area");
    }
}


你要找的东西叫做一个。

你要找的东西叫做一个。

你要找的东西叫做一个。

你要找的东西叫做一个。

否则不是最好的方法,因为它会使代码变得脆弱。如果他添加未来的enum值,它们都会落在else上。在
default
的情况下,如果他忘记修改
method
中的逻辑来处理新的枚举值,那么在以后的重构之后,如果他忘记修改
method
中的逻辑来处理新的枚举值,那么切换会更好。roryap:同意,这是一个简单的方法模板,展示了如何使用枚举。当然,最好是正确操作,谢谢。抛出异常后的
中断
是不可访问的,可以删除。谢谢大家!我相信这会很简单!下面是一个快速跟进的问题:使用枚举与仅仅创建属性有什么区别?从我所读到的内容来看,它更多的是一种代码可管理性,而不是性能?否则不是最好的方法,因为它会使代码变得脆弱。如果他添加未来的enum值,它们都会落在else上。在
default
的情况下,如果他忘记修改
method
中的逻辑来处理新的枚举值,那么在以后的重构之后,如果他忘记修改
method
中的逻辑来处理新的枚举值,那么切换会更好。roryap:同意,这是一个简单的方法模板,展示了如何使用枚举。当然,最好是正确操作,谢谢。抛出异常后的
中断
是不可访问的,可以删除。谢谢大家!我相信这会很简单!下面是一个快速跟进的问题:使用枚举与仅仅创建属性有什么区别?从我所读到的内容来看,它更多的是一种代码可管理性,而不是性能?否则不是最好的方法,因为它会使代码变得脆弱。如果他添加未来的enum值,它们都会落在else上。在
default
的情况下,如果他忘记修改
method
中的逻辑来处理新的枚举值,那么在以后的重构之后,如果他忘记修改
method
中的逻辑来处理新的枚举值,那么切换会更好。roryap:同意,这是一个简单的方法模板,展示了如何使用枚举。当然,最好是正确操作,谢谢。抛出异常后的
中断
是不可访问的,可以删除。谢谢大家!我相信这会很简单!下面是一个快速跟进的问题:使用枚举与仅仅创建属性有什么区别?从我所读到的内容来看,它更多的是一种代码可管理性,而不是性能?否则不是最好的方法,因为它会使代码变得脆弱。如果他添加未来的enum值,它们都会落在else上。在
default
的情况下,如果他忘记修改
method
中的逻辑来处理新的枚举值,那么在以后的重构之后,如果他忘记修改
method
中的逻辑来处理新的枚举值,那么切换会更好。roryap:同意,这是一个简单的方法模板,展示了如何使用枚举。当然,最好是正确操作,谢谢。抛出异常后的
中断
是不可访问的,可以删除。谢谢大家!我相信这会很简单!下面是一个快速跟进的问题:使用枚举与仅仅创建属性有什么区别?从我所读到的内容来看,这更多的是代码可管理性,而不是性能?谢谢大家!我觉得这很容易。我只是不知道该用谷歌搜索什么!谢谢大家!我觉得这很容易。我只是不知道该用谷歌搜索什么!谢谢大家!我觉得这很容易。我只是不知道该用谷歌搜索什么!谢谢大家!我觉得这很容易。我只是不知道该用谷歌搜索什么!