C#表达某种对象的最佳实践

C#表达某种对象的最佳实践,c#,C#,我正在构建一个类,以使用C#上的user32.dll自动执行外部程序 当我在文本框上插入并提交文本(它是一个ID代码)时,一些异常可以以消息框的形式抛出和处理,直到这里,一切都正常 这种例外情况可能像“打印机缺纸”、“无效代码”等 问题是: 如果我有一个方法GetErrorBox,根据最佳实践,我应该对此方法返回什么 public static bool GetErrorBox() { // Test if ErrorBox Out Of Papper Exists if (Cr

我正在构建一个类,以使用C#上的user32.dll自动执行外部程序

当我在文本框上插入并提交文本(它是一个ID代码)时,一些异常可以以消息框的形式抛出和处理,直到这里,一切都正常

这种例外情况可能像“打印机缺纸”、“无效代码”等

问题是: 如果我有一个方法
GetErrorBox
,根据最佳实践,我应该对此方法返回什么

public static bool GetErrorBox()
{
    // Test if ErrorBox Out Of Papper Exists
    if (CrossApplicationHandler.WindowExists("#####", "#######"))
        return ?;
    // Test if ErrorBox Invalid Code Exists
    else if (CrossApplicationHandler.WindowExists("#####", "#####"))
        return ?;
    else return ?; 
}
编辑

我可以返回不同的
字符串
并在调用者身上处理它,抛出不同的
异常
,但我相信更清楚,最好的方法是像用户@Mabakay aswered那样返回
Enum

谢谢你们,如果我在这个问题上表达自己时遇到了一些麻烦,我很抱歉

以下是解决方案:

public enum ErrorBox
{
    None = 0,
    OutOfPapper,
    InvalidCode,
    ...
}

public static ErrorBox GetErrorBox()
{
    ...
}

基于最佳实践前缀为Has/Was/Is的方法。。。应该还布尔。在您的情况下,可以使用enum返回错误框的实际状态

public enum ErrorBox
{
    None = 0,
    OutOfPapper,
    InvalidCode,
    ...
}

public static ErrorBox GetErrorBox()
{
    ...
}

嗯?我不确定我是否理解这个问题。呃……一个粗略的猜测:如果窗口存在,可能返回
true
,如果不存在,则返回
false
?根据当前的返回类型,您应该返回
bool
…如果您指定一个以
开头的方法Has
(或
Is
Does
,等等),我希望该方法返回
true
false
(一个布尔值)。异常永远不会以messageBox的形式抛出(您的?)代码最终会处理某些异常,并在捕获时显示messageBox。你的问题是非常不明确的,当谈到“最佳实践”时,问题是它完全是基于观点的。我的最佳实践可能是总是在方法前面加上
m__
,这样我知道这是一种方法。其他人可能有另一个系统。@gunr217通过对你的练习说“eww”来证明你的观点。如果您的方法是基于动词的,而属性/变量是基于名词的,那么就不需要了。@itsme86对于记录来说,
m__
只是一个例子。这篇评论试图表达一般回答“最佳实践”问题的失败。这就是我想要的,我相信使用enum是最好的方法。多谢各位@Mabakay@gunr2171“最佳实践”是基于大多数人的意见,而不是个人的意见。你可以把它理解为标准化的一种形式。“其他人可能有另一个系统。”没错。但你不能称之为“最佳实践”。