這裡研究一下關於c#
中如何獲取變數型別的問題。
// 問題一:獲取單個變數的型別
// 方法一:使用GetType()方法
public static void JudgeType()
{
int element = 5;
// 我們應該知道, GetType()回返回一個型別,因此我們需要用型別變數來儲存它
Type type = element.GetType();
// 如果我們需要判斷這個型別與其他的型別,比如與int型別,那麼我們應該與typeof(int)進行比較
if (type == typeof(int))
{
Console.WriteLine("Is the type of element int? {0}", "Yes");
}
}
// ================================================================================================================
// 方法二:使用is方法
public static void JudgeType()
{
// 這裡為了避免warning的出現,我們使用object來定義變數
object element = 5;
// 使用is來直接判斷變數的型別
if (element is int)
{
Console.WriteLine("Is the type of element int? {0}", "Yes");
}
}
// 問題二: 獲取列表的型別
// 方法一:使用GetType()方法
public static void JudgeType()
{
// 建立一個列表物件
var list = new List<int>() { 1, 2 };
Type type = list.GetType();
if (type == typeof(List<int>))
{
Console.WriteLine("Is the type of list List<int>? {0}", "Yes");
}
}
// ================================================================================================================
// 方法二:使用is方法
public static void JudgeType()
{
var list = new List<int>() { 1, 2 };
if (list is List<int>)
{
Console.WriteLine("Is the type of list List<int>? {0}", "Yes");
}
}
// ================================================================================================================
// 方法三:使用GetType()和GetGenericArguments()方法
public static void JudgeType()
{
var list = new List<int>() { 1, 2 };
Type[] type = list.GetType().GetGenericArguments();
if (type[0] == typeof(int))
{
Console.WriteLine("Is the type of list List<int>? {0}", "Yes");
Console.WriteLine("Is the type of element in list int? {0}", "Yes");
}
}
// ================================================================================================================
// 方法四: 使用GetType()和ToString()方法
public static void JudgeType()
{
var list = new List<int>() { 1, 2 };
foreach (var element in list)
{
Type type1 = element.GetType();
if (type1.ToString() == "System.Int32")
{
Console.WriteLine("Is the type of element in list int? {0}", "Yes");
}
}
}
// ================================================================================================================
// 方法五: 使用GetType()和Name方法
public static void JudgeType()
{
var list = new List<int>() { 1, 2 };
string type_ = list[0].GetType().Name;
Console.WriteLine(type_);
if (type_ == "Int32")
{
Console.WriteLine("Is the type of element in list int? {0}", "Yes");
}
}
如果大家覺得有用,請高擡貴手給一個贊讓我上推薦讓更多的人看到吧~