如何将枚举作为强类型参数?

时间:2016-01-07 20:30:50

标签: c# .net enums

我可能会完全错误,所以我对所有建议持开放态度。我想要做的是需要StatusType参数:

Response(StatusType.Submit, message);

限于某些类型,它们将返回一个常量字符串值。到目前为止,我已经提出了这个解决方案:

public class Response
{
    private StatusType _status;

    Response(StatusType status, string message)
    {
        _status = status;
    }

    public string Status
    {
        get
        {
            return Enum.GetName(typeof(StatusType), _status);
        }
    }
}

public enum StatusType
{
    Fail,
    Success,
    Response,
    Confirm
}

但我现在意识到enum参数是弱类型的,并允许我输入字符串值。谁能帮我?我觉得enum不是我的解决方案,但我不确定另一种方式。

1 个答案:

答案 0 :(得分:3)

根据评论,您在VB项目中使用此类时会收到错误。

Option Strict关闭时,VB将尝试“帮助”在“兼容”类型之间转换对象。这通常会隐藏错误并导致一些非常难以追踪错误。我建议在Visual Basic中进行开发时始终打开“Option Strict”;它可以帮助你编写更好的代码。

您可以通过项目属性中的Compile选项卡(推荐方式)为整个项目启用Option Strict,也可以通过将Option Strict On添加到任何文件的顶部来为单个文件启用类定义。