C#中是否有一个内置类型,它包含一个bool和一个用于静态方法返回的字符串

本文关键字:一个 用于 字符串 返回 静态方法 bool 有一个 是否 内置 置类型 包含一 | 更新日期: 2023-09-27 18:28:47

我正在寻找一个从函数或方法返回的类型,首先传达它是否成功,然后将消息(作为字符串)附加到它,以传递关于它失败原因的进一步信息。它可能是一个应用程序退出代码行上的东西;但是,我不想创建一整套退出代码来索引特定的错误消息。我非常喜欢一个"成功"退出代码的想法,这样就可以快速检查调用是否失败并相应地工作。

我想让它成为一系列静态方法(比如服务调用)的返回类型,并且我可以为它创建一个带有这两个字段(bool和string)的类;然而,我觉得这样的东西可能已经存在了,尽管我还没能找到它。此外,如果有更好的做法来处理从一个方法返回的信息,或者有一个通用规则来完全反对这类静态类,我欢迎你的评论。

为了更好的可视化:

    public static <type> CreateSomething(string somethingName)
    {
        ...
        return new <type>("Fail!", "Because...");
    }

C#中是否有一个内置类型,它包含一个bool和一个用于静态方法返回的字符串

有两种明显的方法:定义自己的类型或使用Tuple<T1, T2>

我认为,你几乎应该总是定义自己的类型。它不花钱。就这么做吧。这就是你应该做的。

如果你觉得特别懒。。。

public Tuple<bool, string> MyMethod(...)
{
    ...
    return Tuple.Create(false, "Something broke");
}

您所说的被称为泛型。这是微软对仿制药的介绍,网上也有很多关于它们的内容。

对于您的问题,您还可以将泛型与TryCan模式结合起来。然而,通常情况下,您只想冒泡一个异常,所以请通过正确的

来考虑这一点

您可以遵循.NET框架中的TryDoSomething模式,而不是创建新类型。

例如:

int number;
if(Int32.TryParse(value, out number))
{
   Console.WriteLine(number);
}

您可以创建一个返回布尔值以表示成功或失败的方法。它还可以返回错误消息的参数。

这是一个例外。

您的函数不应返回true/false表示成功。它应该是一个在失败时抛出异常的void。

不要忘记将异常放在方法的XML注释中。

.net的核心程序集不包含这样的类型。您可以在F#运行时中找到Option<T>

我还在SO上的一个旧问题中发布了这样一个类型:通用属性缺点?

相关文章: