C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のジェネリックメソッドからnullを返すにはどうすればよいですか?


Genericsを使用すると、フィールド、メソッド、パラメーターなどのタイプのプレースホルダーを使用してクラスを定義できます。Genericsを使用すると、コンパイル時にこれらのプレースホルダーを特定のタイプに置き換えます。ジェネリックは、山括弧<>を使用して定義できます。コレクションの主な制限は、効果的な型チェックがないことです。これは、C#プログラミング言語のすべてのクラスがオブジェクト基本クラスから拡張されているため、任意のオブジェクトをコレクションに含めることができることを意味します。

また、通常のメソッドのように、ジェネリックメソッドから単純にnullを返すことはできません。以下は、nullを返そうとした場合にジェネリックメソッドがスローするエラーです。

using System;
namespace DemoApplication {
   class Program {
      public static void Main() {
         Add(5, 5);
      }
      public static T Add<T>(T parameter1, T parameter2) {
         return null;
      }
   }
}

C#のジェネリックメソッドからnullを返すにはどうすればよいですか?

したがって、ジェネリックメソッドからnullまたはデフォルト値を返すには、default()を使用できます。 default(T)は、提供されたタイプのデフォルトオブジェクトを返します。

using System;
namespace DemoApplication {
   class Program {
      public static void Main() {
         Add(5, 5);
         Console.ReadLine();
      }
      public static T Add<T>(T parameter1, T parameter2) {
         var defaultVal = default(T);
         Console.WriteLine(defaultVal);
         return defaultVal;
      }
   }
}

出力

コードの出力は

です。
0

ここでは、整数0のデフォルト値が返されることがわかります。


  1. C#ASP.NET WebAPIのアクションメソッドからカスタム結果タイプを返す方法は?

    IHttpActionResultインターフェイスを実装することで、結果タイプとして独自のカスタムクラスを作成できます。 。 IHttpActionResultには、HttpResponseMessageインスタンスを非同期的に作成する単一のメソッドExecuteAsyncが含まれています。 public interface IHttpActionResult {    Task<HttpResponseMessage> ExecuteAsync(CancellationToken    cancellationToken); } コントロ

  2. Windows から IDP.Generic ウイルスを削除する方法

    IDP.Generic または Identity Protection Generic は、 ウイルス対策プログラム を使用しているときにシステムに現れる危険な脅威です。 悪意のあるコードを検出します。このようなウイルスは、PC に密かに侵入するように設計および開発されています。したがって、ウイルスはバックグラウンドで実行され、機密情報や個人情報を盗むため、問題の明確な症状が見つからない可能性があります. IDP.Generic とは IDP.ジェネリック ウイルス対策ソフトウェアがシステム上で一般的なマルウェアを検出したときに表示される用語です。いくつかの感染の可能性は、IDP.Ge