如何在C#中说"不是对象"?

Tra*_*ter -4 c#

我有一个类,问题,如果文件的名称是某种格式,它应该只执行它的逻辑:

namespace Site.Models
{
    public class Issue
    {
        String FilePath { get; set; }
        String FileName { get; set; }
        String HTML {get; set;}

        public Issue(String path)
        {
            FilePath = path;
            FileName = Path.GetFileName(FilePath);

            if(FileName.StartsWith(".")){
                // How do I say "Not an Issue; don't continue logic"
            }

            HTML = "<li>" + FileName + "</li>;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以将所有逻辑放在其他地方,但我真的希望尽可能避免不必要的条件.另外,我很好奇是否有办法做到这一点.

Jon*_*øgh 5

一旦进入构造函数,C#就无法避免构造对象.

您当然可以从方法返回而不执行剩余的代码,但所有这些都将使您成为一个很可能不处于有用状态的对象.另一种选择是抛出一个异常,但是这应该保留用于特殊情况,因为你的程序很快就会变成一堆基于try catch的流量控制.

通常,您不希望在未进行基本验证的情况下调用构造函数,以确保构造首先成功.如果这是一个常见操作,您可以为它制作工厂方法.