C#でタプルの要素の型を取得する方法
C#でタプル(Tuple)の要素の型を取得するには、GetType()メソッドを使用します。このメソッドは、現在のインスタンスの正確なランタイム型を表すTypeオブジェクトを返します。以下に、具体的なコード例とその実行結果を示します。
例1:入れ子になったタプルの場合
using System;
public class Demo {
public static void Main(String[] args){
var tuple1 = Tuple.Create(150, 1500, Tuple.Create(50, 100));
var tuple2 = Tuple.Create(150, 1500, Tuple.Create(100, 200));
Console.WriteLine("Is Tuple1 equal to Tuple2? = "+tuple1.Equals(tuple2));
Console.WriteLine("HashCode of Tuple1 = "+tuple1.GetHashCode());
Console.WriteLine("Type of Tuple1 = "+tuple1.GetType());
Console.WriteLine("HashCode of Tuple2 = "+tuple2.GetHashCode());
Console.WriteLine("Type of Tuple2 = "+tuple2.GetType());
}
}
出力
上記のコードを実行すると、次のような出力が得られます。
Is Tuple1 equal to Tuple2? = False HashCode of Tuple1 = 188892 Type of Tuple1 = System.Tuple`3[System.Int32,System.Int32,System.Tuple`2[System.Int32,System.Int32]] HashCode of Tuple2 = 191462 Type of Tuple2 = System.Tuple`3[System.Int32,System.Int32,System.Tuple`2[System.Int32,System.Int32]]
この例では、3つの要素を持つタプルの中に、さらに2つの要素を持つ入れ子のタプルが含まれています。GetType()メソッドの出力から、System.Tuple`3[System.Int32,System.Int32,System.Tuple`2[System.Int32,System.Int32]]というように、入れ子構造を含めた完全な型情報が表示されていることがわかります。また、tuple1とtuple2は第3要素の値が異なるため、Equals()メソッドによる比較結果はFalseとなり、それぞれ異なるハッシュコードが返されています。
例2:シンプルなタプルの場合
次に、入れ子になっていないシンプルな2要素のタプルでの動作を確認してみましょう。
using System;
public class Demo {
public static void Main(String[] args){
var tuple1 = Tuple.Create(10, 20);
var tuple2 = Tuple.Create(30, 40);
Console.WriteLine("Is Tuple1 equal to Tuple2? = "+tuple1.Equals(tuple2));
Console.WriteLine("HashCode of Tuple1 = "+tuple1.GetHashCode());
Console.WriteLine("Type of Tuple1 = "+tuple1.GetType());
Console.WriteLine("HashCode of Tuple2 = "+tuple2.GetHashCode());
Console.WriteLine("Type of Tuple2 = "+tuple2.GetType());
}
}
出力
上記のコードを実行すると、次のような出力が得られます。
Is Tuple1 equal to Tuple2? = False HashCode of Tuple1 = 350 Type of Tuple1 = System.Tuple`2[System.Int32,System.Int32] HashCode of Tuple2 = 1014 Type of Tuple2 = System.Tuple`2[System.Int32,System.Int32]
このように、GetType()メソッドを使えば、タプルの構造(要素数や各要素の型)を簡単に確認できます。両方の例で、tuple1とtuple2は同じ型(System.Tuple`2[System.Int32,System.Int32])を持ちますが、格納されている値が異なるため、等価比較の結果はFalseになり、ハッシュコードも異なる値となります。タプルの型情報を取得することは、デバッグ時やリフレクションを利用した動的な処理を行う際に非常に役立ちます。
-
CSSのIDセレクターとは?基本構文と使い方を実例付きで解説
CSS IDセレクターとは CSSのIDセレクターは、ページ内で一意のid属性を持つHTML要素を対象に、スタイルを適用するためのセレクターです。特定の1つの要素だけを確実に装飾したい場合に活用されます。 IDセレクターの基本構文 #id-name { property-name: value; } 対応するHTML側では、同じ名前のidを属性値として指定します。 <div id=id-name></div> このように記述することで、CSSで#id-nameに定義したスタイルプロパティがすべて、その<div>要素へ適用されます。 ID名の前につ
-
CSSの要素タイプセレクターとは?基本構文と実例をわかりやすく解説
CSSの要素タイプセレクターは、指定した種類の要素をすべて一括で選択するためのセレクターです。たとえば「li」と指定すれば、ページ内のすべてのリスト項目に同じスタイルが適用されます。HTML文書全体に共通のデザインを設定したい場合に非常に便利な、CSSの基本的なセレクターです。 構文 要素タイプセレクターの書き方は以下のとおりです。セレクター名として要素名をそのまま記述します。 element { /*declarations*/ } サンプルコード1:リストとdiv要素への適用例 次の例では、li 要素と div 要素に対してそれぞれスタイルを指定しています。 &l