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

C#の「as」演算子の使い方を徹底解説!型変換の基本とサンプルコード

C#における「as」演算子は、互換性のある型同士の変換を行うための演算子です。キャスト操作に似ていますが、実行できるのは参照変換null許容変換ボックス化変換のみという特徴があります。ユーザー定義の変換など、それ以外の変換は「as」では行えず、その場合は通常のキャスト式を使用する必要があります。

as演算子の基本構文

「as」演算子は次のように記述します。ここでは、object型の値をstring型へ変換しています。

string s = obj[i] as string;

変換に成功した場合はその結果が返され、失敗した場合には例外をスローする代わりにnullが返される点が、明示的なキャストとの大きな違いです。そのため、変換後の値がnullかどうかをチェックすることで、安全に型変換を処理できます。

サンプルプログラム

以下は、C#で「as」演算子を使った実際のコード例です。object型の配列に文字列と整数を格納し、「as」を使ってstring型への変換を試みています。

using System;

public class Demo {
    public static void Main() {
        object[] obj = new object[2];
        obj[0] = "jack";
        obj[1] = 32;

        for (int i = 0; i < obj.Length; ++i) {
            string s = obj[i] as string;
            Console.Write("{0}: ", i);
            if (s != null)
                Console.WriteLine("'" + s + "'");
            else
                Console.WriteLine("This is not a string!");
        }
        Console.ReadKey();
    }
}

実行結果

0: 'jack'
1: This is not a string!

解説

配列の要素「jack」は文字列なので、「as」による変換に成功し、その値が出力されます。一方、要素「32」はint型(ボックス化された整数)であり、string型へは変換できないため、結果としてnullが返され、「This is not a string!」と表示されます。

このように「as」演算子を使えば、無効な変換時に例外が発生することなくnullを受け取れるため、try-catchを使わずにシンプルかつ安全な型判定処理を記述できます。

  1. SQLのEXISTS演算子とは?基本構文と実例で学ぶ使い方

    SQLでは、WHERE句にさまざまな条件を指定することでクエリを柔軟に定義できます。その中でも「特定の条件に一致する行がデータベース内に存在するかどうか」を確認したい場合に便利なのが、EXISTS演算子です。 EXISTS演算子の基本構文 EXISTSは、WHERE句の中でサブクエリ(副問い合わせ)と組み合わせて使用します。基本的な構文は以下の通りです。 SELECT <カラム名> FROM <テーブル1名> WHERE EXISTS ( SELECT <カラム名> FROM <テーブル2名> WHERE <テーブル2の主

  2. 【Android】SQLiteでINTERSECT演算子を使用する方法を解説

    本題に入る前に、AndroidにおけるSQLiteデータベースについて簡単におさらいしましょう。SQLiteは、デバイス上のテキストファイルにデータを保存するオープンソースのSQLデータベースです。AndroidにはSQLiteの実装が標準で組み込まれており、リレーショナルデータベースの機能をすべてサポートしています。また、JDBCやODBCのような接続設定を行わずにデータベースへアクセスできる点も大きな特徴です。この記事では、AndroidのSQLiteでINTERSECT演算子を使用する方法を、サンプルコードとともにわかりやすく解説します。INTERSECT演算子とはINTERSECTは、