VisualStudio15で追加される予定のC#7.0 をVisualStudio15 Preview4で確認してみました。
今までのis演算子の使用方法が増えるみたいです。
今までは、インスタンスがObjectクラスで渡っていた時など、as でキャストして、nullチェックしていました。
それが、isを使うことにより、キャスト+nullチェックができるようになるみたいです。
Object obj = new SampleClass();
if (obj is SampleClass sample)
{
Console.WriteLine($"{sample.Message}");
}
Object obj = new SampleClass();
var sample = obj as SampleClass;
Boolean isNotNull = (sample != null);
if (isNotNull)
{
Console.WriteLine("{0}", sample.Message);
}
補足
内部的には、is 演算子の後ろのTypeでas演算子を使ってキャストするため、もちろん、ベースクラスにキャストもできます。
public class SampleBaseClass
{
public String Message { get; set; } = "message";
}
public class SampleClass : SampleBaseClass
{
}
class Program
{
static void Main()
{
Object obj = new SampleClass();
if( obj is SampleBaseClass sample)
{
Console.WriteLine( $"{sample.Message}" );
}
}
}
0 件のコメント:
コメントを投稿