草庐IT

c# - 这段代码能正确判断两种类型是否相等吗?

我对System.Type和.NET中的实际类类型(如Object或XmlDocument)有点迷糊。.此代码能否正确确定特定对象的类型是否等于我指定的类?'Given"myObject"(unknowntype),andsomeclasstype(let'ssay"MyClass")...IfmyObject.GetType.Equals(MyClass)IfTypeOf(myObject)IsMyClassIfmyObject.GetType()IsMyClass哪个是正确的?如果您可以提供一些关于什么是类标识符与什么是System.Type的信息,则加分。:)注意:这里使用的语言

c# - 在运行时构建 c# 泛型类型定义

目前我不得不做这样的事情来在运行时构建类型定义以传递给我的IOC来解析。简化:Typet=Type.GetType("System.Collections.Generic.List`1[[ConsoleApplication2.Program+Person");我只知道运行时的泛型类型参数。有什么东西可以让我做这样的事情(假代码):Typet=Type.GetTypeWithGenericTypeArguments(typeof(List),passInType.GetType());或者我应该坚持我的hack,passInType.GetType()转换为字符串,构建通用类型字符串.

c# - 在 C# 中确定调用对象类型

不管这是否是个好主意,是否可以实现一个接口(interface),让执行函数知道调用对象的类型?classA{privateC;publicintdoC(intinput){returnC.DoSomething(input);}}classB{privateC;publicintdoC(intinput){returnC.DoSomething(input);}}classC{publicintDoSomething(intinput){if(GetType(CallingObject)==A){returninput+1;}elseif(GetType(CallingObject)

c# - 如何判断一个实例是某种类型还是任何派生类型

我正在尝试编写验证来检查对象实例是否可以转换为变量类型。对于他们需要提供的对象类型,我有一个Type实例。但是类型可以变化。这基本上就是我想要做的。Objectobj=newobject();Typetyp=typeof(string);//justasample,reallytypisavariableif(objistyp)//thisiswrong"is"doesnotworklikethis{//dosomething}类型对象本身有IsSubClassOf和IsInstanceOfType方法。但我真正想检查的是obj是typ的实例还是从typ派生的任何类。看似简单的问题,但

c# - 公开课 - "is inaccessible due to its protection level. Only public types can be processed."

我正在做一个测试项目来了解对象的XML序列化,但我遇到了一个奇怪的运行时错误:namespaceSerializeTest{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse){}privatevoidserializeConnection(Connconnection){XmlSerializerserializer=newXmlSerializer(typeof(Conn));TextWritertextWrit

C# 按值复制数组

我有一个类型化数组MyType[]types;我想制作这个数组的独立副本。我试过了MyType[]types2=newMyType[types.Length];types2=types;但这创建了对第一个的引用。然后我尝试了Array.Copy(types,types2,types.Length);但我有同样的问题:更改第一个数组中的值也会更改副本中的值。如何制作数组、IList或IEnumerable的完全独立副本或深拷贝? 最佳答案 根据第一篇文章,他所需要的只是“数组的独立副本”。对shallowCopy数组本身的更改不会出现

c# - .NET:如何检查泛型类中的类型?

如何在类中获取泛型类的类型?一个例子:我构建了一个实现ICollection的通用类型化集合。在我里面有像这样的方法publicvoidAdd(Titem){...}publicvoidAdd(IEnumerableenumItems){...}如何在方法中请求给定类型T?我的问题的原因是:如果object用作T集合使用Add(objectitem)而不是Add(IEnumerableenumItems)即使参数是IEnumerable。因此,在第一种情况下,它将整个可枚举集合添加为一个对象,而不是可枚举集合的多个对象。所以我需要类似的东西if(Tisobject){//Checkfo

c# - 背靠背 for 循环中的 int、short、byte 性能

(背景:WhyshouldIuseintinsteadofabyteorshortinC#)为了满足我自己对使用“适当大小”整数与“优化”整数的优缺点的好奇心,我编写了以下代码,这些代码强化了我之前对.Net中的int性能的看法(并对此进行了解释在上面的链接中)这是针对int性能而不是short或byte进行了优化。DateTimet;longa,b,c;t=DateTime.Now;for(intindex=0;index这在......方面给出了大致一致的结果~950000~2000000~1700000这符合我的预期。然而,当我尝试像这样为每种数据类型重复循环时......t=D

c# - 区分 short、int、long 真的很重要吗?

在我的C#应用程序中,我想知道对较小的数字使用short,对较大的数字使用int等是否真的很重要。内存消耗真的很重要吗? 最佳答案 除非您以某种结构将大量这些打包在一起,否则它可能根本不会影响内存消耗。使用特定整数类型的最佳理由是与API的兼容性。除此之外,只需确保您选择的类型有足够的范围来涵盖您需要的值。除此之外,对于简单的局部变量,它并不重要。 关于c#-区分short、int、long真的很重要吗?,我们在StackOverflow上找到一个类似的问题:

c# - 为什么 "as"运算符在 C# 中不使用隐式转换运算符?

我在C#中定义了从/到某种类型的隐式字符串转换(伪代码):publicclassMyType{publicstringValue{get;set;}publicstaticimplicitoperatorMyType(stringfromString){returnnewMyType{Value=fromString};}publicstaticimplicitoperatorstring(MyTypemyType){returnmyType.Value;}}在外部库代码的某处,MyType的实例作为对象参数传递给方法。该方法的一部分看起来像这样:privatevoidFoo(obje