I have a method which returns a FileInfo-object. After calling the method fooFile.FullName is called.
All fine but there is a case where FileInfo can be null, but I don't want (ugly) null-checks where the method is called.
What I neet is some kind of null-FileInfo (Null-Object-Pattern). It would be enough when calling fooFile.FullName returns a empty string.
Unfortunately new FileInfo(string.Empty) doesn't work.
Searching SO bring this java-question, but answers didn't help me.
Is there a way to use FileInfo in combination with Null-Object-Pattern?
You could use the ?? operator to use a default FileInfo where needed, with a static variable somewhere representing what is the default fileinfo:
public void MyMethod(FileInfo fi)
{
// use default fileinfo if null is passed to this method
fi = fi ?? DefaultFileInfo.Value;
// method code...
// do something with the fileinfo, it is not null for sure now.
}
The default file info class:
public static class DefaultFileInfo
{
public static readonly FileInfo Value = new FileInfo("null");
}
If you what to make the default file readable, of course you would need to specify a valid file name.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With