我有一个类,问题,如果文件的名称是某种格式,它应该只执行它的逻辑:
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)
我可以将所有逻辑放在其他地方,但我真的希望尽可能避免不必要的条件.另外,我很好奇是否有办法做到这一点.
一旦进入构造函数,C#就无法避免构造对象.
您当然可以从方法返回而不执行剩余的代码,但所有这些都将使您成为一个很可能不处于有用状态的对象.另一种选择是抛出一个异常,但是这应该保留用于特殊情况,因为你的程序很快就会变成一堆基于try catch的流量控制.
通常,您不希望在未进行基本验证的情况下调用构造函数,以确保构造首先成功.如果这是一个常见操作,您可以为它制作工厂方法.