草庐IT

c# - 如何以编程方式检查类型是结构还是类?

如何以编程方式检查类型是结构还是类? 最佳答案 使用Type.IsValueType:GetsavalueindicatingwhethertheTypeisavaluetype.像这样使用它:typeof(Foo).IsValueType或者像这样在执行时:fooInstance.GetType().IsValueType反过来还有一个Type.IsClass属性(在我看来应该称为IsReferenceType但无论如何)根据您正在测试的内容,它可能更适合您的用途,也可能不适合您的用途。如果没有bool否定,代码似乎总能更好地阅读

c# - 如何使用给定的 Type 对象调用泛型方法?

这个问题在这里已经有了答案:HowdoIusereflectiontocallagenericmethod?(8个答案)关闭8年前。我想用给定的类型对象调用我的泛型方法。voidFoo(Typet){MyGenericMethod();}显然行不通。我怎样才能让它发挥作用?

c# - 如何使用给定的 Type 对象调用泛型方法?

这个问题在这里已经有了答案:HowdoIusereflectiontocallagenericmethod?(8个答案)关闭8年前。我想用给定的类型对象调用我的泛型方法。voidFoo(Typet){MyGenericMethod();}显然行不通。我怎样才能让它发挥作用?

c# - .NET 整数与 Int16?

我的编码习惯有问题。当我需要遍历计数限制低于32000的一小部分项目时,我使用Int16作为我的i变量类型而不是Integer。我这样做是因为我假设使用Int16比完全成熟的Integer更有效。我错了吗?使用Int16与Integer之间是否没有有效的性能差异?我是否应该停止使用Int16并坚持使用Integer来满足我所有的计数/迭代需求? 最佳答案 你应该几乎总是使用Int32或Int64(而且,不,在按索引遍历数组或集合时,您不会通过使用UInt32或UInt64获得积分。它效率较低的最明显原因是在BCL中找到的所有数组和集

c# - .NET 整数与 Int16?

我的编码习惯有问题。当我需要遍历计数限制低于32000的一小部分项目时,我使用Int16作为我的i变量类型而不是Integer。我这样做是因为我假设使用Int16比完全成熟的Integer更有效。我错了吗?使用Int16与Integer之间是否没有有效的性能差异?我是否应该停止使用Int16并坚持使用Integer来满足我所有的计数/迭代需求? 最佳答案 你应该几乎总是使用Int32或Int64(而且,不,在按索引遍历数组或集合时,您不会通过使用UInt32或UInt64获得积分。它效率较低的最明显原因是在BCL中找到的所有数组和集

c# - 在 Typescript 中声明委托(delegate)类型

我有C#背景,想创建一个定义函数签名的数据类型。在C#中,这是一个声明如下的delegate:delegatevoidGreeter(stringmessage);publicclassFoo{publicvoidSayHi(Greeterg){g("Hi!");}}现在,我想在Typescript中实现类似的功能。我知道Typescript没有委托(delegate)类型,只有lambda。我想到了这样的事情:classFoo{SayHi(greeter:(msg:String)=>void){greeter('Hi!');}}虽然这可行,但我想重复使用方法签名(msg:String

c# - 在 Typescript 中声明委托(delegate)类型

我有C#背景,想创建一个定义函数签名的数据类型。在C#中,这是一个声明如下的delegate:delegatevoidGreeter(stringmessage);publicclassFoo{publicvoidSayHi(Greeterg){g("Hi!");}}现在,我想在Typescript中实现类似的功能。我知道Typescript没有委托(delegate)类型,只有lambda。我想到了这样的事情:classFoo{SayHi(greeter:(msg:String)=>void){greeter('Hi!');}}虽然这可行,但我想重复使用方法签名(msg:String

c# - 在所有程序集中查找类型

我需要在网站或Windows应用程序的所有程序集中查找特定类型,有没有一种简单的方法可以做到这一点?就像ASP.NETMVC的Controller工厂如何查看Controller的所有程序集。谢谢。 最佳答案 实现这个有两个步骤:AppDomain.CurrentDomain.GetAssemblies()为您提供当前应用程序域中加载的所有程序集。Assembly类提供了一个GetTypes()方法来检索特定程序集中的所有类型。因此您的代码可能如下所示:foreach(AssemblyainAppDomain.CurrentDoma

c# - 在所有程序集中查找类型

我需要在网站或Windows应用程序的所有程序集中查找特定类型,有没有一种简单的方法可以做到这一点?就像ASP.NETMVC的Controller工厂如何查看Controller的所有程序集。谢谢。 最佳答案 实现这个有两个步骤:AppDomain.CurrentDomain.GetAssemblies()为您提供当前应用程序域中加载的所有程序集。Assembly类提供了一个GetTypes()方法来检索特定程序集中的所有类型。因此您的代码可能如下所示:foreach(AssemblyainAppDomain.CurrentDoma

C# 对象类型比较

如何比较声明为类型的两个对象的类型。我想知道两个对象是否属于同一类型或来自同一基类。感谢任何帮助。例如privateboolAreSame(Typea,Typeb){} 最佳答案 假设a和b是两个对象。如果您想查看a和b是否在同一继承层次结构中,请使用Type.IsAssignableFrom:vart=a.GetType();varu=b.GetType();if(t.IsAssignableFrom(u)||u.IsAssignableFrom(t)){//x.IsAssignableFrom(y)returnstrueif:/