Tag: gettype

C#如何使用“Type”类型的对象初始化Generic类

我最近有这个问题。 doSomething(typeof(int)); doSomething(typeof(MyClassA)); doSomething(typeof(MyClassB)); public void doSomething(Type _type) { var myGenObj = new MyGenericClass(); // Error. Really I’d want MyGenericClass, MyGenericClass, etc depending on what’s passed in. myGenObj.doSomeGenStuff(); // more stuff… } 我认为这可以通过某种方式进行反思。可能有一种更简单的方法。 关于Type的工作方式和类下的Classes,我有点困惑。 无论如何,谢谢你的帮助。 谢谢。

从作为字符串传递的值中获取数据类型

我正在编写一个框架,它将连接到许多不同的数据源类型并从这些源返回值。 简单的是SQL,Access和Oracle。 更难的是Sharepoint,CSV。 如果我从基于文本的源返回值,我想确定数据的数据类型。 由于CSV是全文,因此没有要查询的元数据,我需要以某种方式解析数据以确定数据类型。 例: “true”,“true”,“false”,“false”的列表将是布尔值 “1”,“0”,“1”,“0”的列表将是布尔值 “1”,“4”,“ – 10”,“500”的列表将是整数 “15.2”,“2015.5896”,“1.0245”,“500”的列表将是双倍的 “2001/01/01”,“2010/05/29 12:00”,“1989/12/25 10:34:21”的清单是datetime 它基于https://stackoverflow.com/questions/606365/c-doubt-finding-the-datatype/606381#606381 object ParseString(string str) { Int32 intValue; Int64 bigintValue; double doubleValue; bool boolValue; DateTime dateValue; // Place checks higher in if-else statement to give higher priority to type. if (Int32.TryParse(str, out intValue)) return intValue; else if (Int64.TryParse(str, out bigintValue)) return […]

如何获取类属性的名称?

无论如何我可以得到类属性IntProperty的名称? public class ClassName { public static int IntProperty { get { return 0; } } } //something like below but I want to get the string of “IntProperty” ClassName.IntProperty.GetType().Name 基本上我想要做的是动态地将属性名称字符串保存到数据库中,稍后从数据库中检索它并动态调用属性。 好像我正在寻找的东西类似于我认为的鸭子打字。 谢谢! 更新: 这是实际的代码。 这更像是一种工作流程。 但是每个任务都被定义为类的属性(类用于对任务进行分组)。 public class ApplicationTask { public static Task SendIncompleteNotification { get { return new Task ( a => Console.WriteLine(“Sample […]

C#中的GetType()和Typeof()

itemVal = “0”; res = int.TryParse(itemVal, out num); if ((res == true) && (num.GetType() == typeof(byte))) return true; else return false; // goes here when I debugging. 为什么num.GetType() == typeof(byte)不返回true ?

Type.GetType返回null

我正在尝试使用Type.GetType并传递“caLibClient.entity.Web2ImageEntity”完整的类名。 caLibClient.entity是名称空间,位于分离的程序集(caLibClient)中,并添加到程序引用程序集列表中。 当我从程序中调用它时,Type.GetType总是返回Null,这有什么问题?

(C#)为什么Visual Studio说它是一个对象,而GetType说它是一个Func ?

C#新手问题在这里。 以下代码(取自Christian Gross,Apress的书“C#From Novice to Professional”)给出了一个错误: worksheet.Add(“C3”, CellFactories.DoAdd(worksheet[“A2”], worksheet[“B1”])); 原因是方法DoAdd()不接受给定的参数。 public static Func DoAdd(Func cell1, Func cell2) {…} VS声称上面的方法调用中的两个args都是object类型,而该方法只接受Func 。 但是两个工作表元素的值都是Func类型: worksheet.Add(“A2”, CellFactories.Static(10.0)); 这个Static方法只返回给定值: public static Func Static(object value) { return () => value; } // return type= Func 当我将worksheet[“A2”]为Func ,代码确实有效。 但有些事情我不明白。 对象实例的类型是Func 。 我已经使用GetType()方法来查看此certificate,并将原始元素的对象类型与强制转换对象的对象类型(可接受)进行比较: Console.Writeline(worksheet[“A2”].GetType()); // now cast to the correct type (why can’t […]

通过提供类名作为字符串来获取引用程序集的类型?

这些是类似的问题: 操作方法:在运行时使用Silverlight中的字符串从引用的程序集加载类型,引用的程序 集中的类上的GetType失败,但两个答案都不起作用。 我有一个MVC项目,它从包含普通类型作为字符串的数据库中提取数据。 这些类型位于引用的程序集中,而不是MVC项目中。 例如,假设我的Referenced程序集名称是MyFramework ,普通类型名称为Car ,完整类型名称可以是MyFramework.Cars.Car或MyFramework.Vehicles.Cars.Car或其他一些变体。 我只有引用的程序集名称和普通的类名称作为字符串。 无论完整的类型名称如何,我如何获得类型? 最后,我可以在引用的程序集中编写一个函数来调用GetType()并在MvC项目中使用它,这样我可以放弃包括程序集名称吗? 我想删除已知的程序集名称,所以我想我可以在引用的程序集中编写一个Util,如: namespace MyFramework //the referenced assembly { public static class TypeUtil { public static Type GetFrameworkType(string typeName) { return Type.GetType(typeName); } } } 然后在我的MVC项目中,我可以调用它而不需要将程序集作为字符串名称。 这是可能的还是我总是需要汇编名称?

System.Type.FullName的意外值

我最近需要为任意类型构建C#特定名称(必须始终包含global :: specifier)并且遇到以下问题: // 1 – value: System.String[,,,][,,][,] string unexpectedFullName = typeof( string[,][,,][,,,] ).FullName; // 2 – value: System.String[,][,,][,,,] string expectedFullName = Type.GetType( “System.String[,][,,][,,,]” ).FullName; 我期待两种情况下返回的值都相同。 但是,由于某种原因,数组相关部分的值似乎是相反的(案例1)。 这是逆转预期的行为吗?

使用GetType()和typeof()获取Type有什么区别?

可能重复: 类型检查:typeof,GetType还是? 哪一种是获得该类型的首选方式?

如何在C#中的System.Type中返回System .__ COMObject的类型

我正在做一个程序,我想做一个reflection,但为此,我需要一个Type of Type类,对吧? 使用.GetProperties()方法……所以我尝试了这个: Type typeName = simObjects.getType(); 但.GetType()返回“System .__ COMObject”。 这没有用。 .typeof()也是如此。 我搜索并找到了另一个代码,这个代码: Type typeName = (Type)Microsoft.VisualBasic.Information.TypeName(simObjects); 但是这个方法返回一个String,我需要它在System.Type中,任何天才请帮帮我吗?