一直在寻找,但运气不佳,我想创建一个仅允许将某些项目作为第一个参数传递的函数。

例如它应该只允许以下字符串:

"error", "warning", "info"

那么电话将是
showme("error");
or showme("warning");
or showme("info");

可以这样做吗?我知道我可以定义
showme(string type){}

但理想情况下我需要 showme(string type "error"){}

最佳答案

我建议一个 enum

public enum ErrorType {
    error,
    warning,
    info
}

public void ShowMe(ErrorType errorType) {
    switch (errorType) {
        case ErrorType.error:
        //do stuff
        break;
        case ErrorType.warning:
        //do stuff
        break;
        case ErrorType.info:
        //do stuff
        break;
        default:
        throw new ArgumentException("Invalid argument supplied");
        break;
    }
}

//Invoke the method
ShowMe(ErrorType.info);

关于c# - 函数中的预定义参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9079653/

10-10 13:45