C sharp (#) 数据类型获取方式
作者:勤奋的大熊猫
这篇文章主要介绍了C sharp (#) 数据类型获取方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
C sharp (#) 数据类型获取
这里研究一下关于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"); } }
C#的五大数据类型
1.类(class):如Windows,Form,Console,String
2.结构体(Structures):如Int32,Int64,Single,Double
3.枚举(Enumerations):如HorizontalAlignment,Visibility
4.接口(Interfaces)
5.委托(Delegates)
C#类型的派生谱类
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。