是否有可能得到一个reflection获得的类型的“c#名称”,如: System.Collections.Generic.List`1[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] 我想得到: List 没有拆分字符串有可能吗? 例如,使用Reflection。 谢谢!
在C#中, 内置类型的关键字只是System命名空间中相应类型的别名。 通常,使用关键字(例如int )或标识符(例如Int32 )来引用内置类型没有区别。 但是所有内容都有例外,所以我的问题分为两部分: C#何时要求您使用或不使用关键字? 何时使用关键字而不是标识符会改变程序的含义?
我试图将一些Delphi代码转换为c#,我遇到了一个问题…… 在Delphi中,我已经推出了一种新类型 Type TData = Array of Extended 在哪里我可以访问返回此类型的函数的结果与语句,如 Function TMyObject.ReadData:TData; begin … end; Data := MyObject.ReadData; Result = Data[7] + Data[12] 现在,如果我最初将其声明为Array of Single那么我可以改变这一行来改变精度。 (我可能不久要将它降低到Double以便任何结果与c#版本完全匹配。 所以问题是我可以在c#中做类似的事吗? 就像是 class Data : Double[] 虽然不完全像这样,因为它不编译,或者我会这样做 class DataEntry : Double … public DataEntry[] Read { … }
我想编写如下函数 public void Foo(System.Type t where t : MyClass) { … } 换句话说,参数类型是System.Type ,我想将允许的Type限制为从MyClass派生的Type 。 有没有办法在语法上指定这个,或者必须在运行时检查?
只是好奇。 是否有任何时候调用。对象上的.GetType()将返回null? 假设用法: public Type MyMethod( object myObject ) { return myObject.GetType(); }
如何编写一个简单的方法,检查具体类型是否是自定义结构(使用public struct { };创建)。 检查Type.IsValueType是不够的,因为它也适用于int , long等,并添加一个检查!IsPrimitiveType不会排除decimal , DateTime和其他一些值类型。 我知道大多数内置值类型实际上是“结构”,但我只想检查“自定义结构” 这些问题大致相同但没有我需要的答案: #1 #2 #3 编辑:从提到的答案“检查’系统’前缀”是最稳定的(虽然它仍然是一个黑客)。 我最终决定创建一个必须用它来装饰结构的属性,以便框架将其作为自定义结构来选择。 (我想的另一个选择是创建一个空接口,让struct实现那个空接口,但属性方式似乎更优雅) 这是我原来的自定义结构检查器,如果有人感兴趣: type.IsValueType && !type.IsPrimitive && !type.Namespace.StartsWith(“System”) && !type.IsEnum
long b = 99; float c = 99.0F; //b = c; //Error : Cannot implicitly convert type ‘float’ to ‘long’. c = b; // Running Successfully. Why? 为什么数据类型的大小和隐式转换没有问题? 我们知道float和long的大小不同,下面给出了…… Console.WriteLine(“Long : ” + sizeof(long)); // Output –> Long : 8 Console.WriteLine(“Float : ” + sizeof(float));// Output –> Float: 4
在我的C#应用程序中,我想知道对较小的数字使用short是否真的很重要,对于较大的数字使用int是否真的很重要。内存消耗真的很重要吗?
我使用旧的float myFloat = (float)myDouble将double转换为float。 然而,这有时会导致“无限”,这对我正在进行的进一步处理不利。 只要它指向一般方向作为原始数字(我要转换的所有数字的相对数量’强度’必须保持),我对损失没问题。 如何将float转换为double并避免Infinity? 背景: 我正在从wav / mic读取字节流,将其转换为float ,将其转换为double ,通过FFT计算运行(这需要double ),现在我想让它恢复float (将数据存储在32位中)图像容器)。
为什么单精度浮点数具有7位精度(或15-16位精度)? 任何人都可以根据为浮点数分配的32位(Sign(32)Exponent(30-23),Fraction(22-0))解释我们是如何到达的吗?