【c# – 使用’is’,其中类型是在运行时定义的】教程文章相关的互联网学习教程文章

c# – 为什么我会使用限制为仅限一种类型的where约束?【代码】

所以我在这里查看MSDN示例:Constraints on Type Parameters (C# Programming Guide)和第一个示例显示了以下通用类定义具有单个具体类型的where约束:Employeepublic class GenericList<T> where T : Employee现在当使用where约束时,我完全理解定义>时的用法1类型,或者当使用接口时最肯定.然而(我知道这只是一个例子),为什么我只想用where约束来限制一个具体的类型呢?我不能只替换下面的代码:public T FindFirstOccurrence(strin...

C#里面的数据类型【图】

C#里面的数据类型*# 总的来说,C#里面的数据类型可以分为三种:值类型,引用类型,指针类型(不安全)。 由于指针类型在C#里面并不安全,所以在此只对值类型和引用类型进行讨论。 值类型:变量直接储存数据,存储在栈上,主要的类型有:1.C++中的七种基本数据类型:bool(1字节), char (在C#是占俩字节,C++1字节 ),short ,int ,long ,float ,double 2. C#扩展的几种:decimal(金钱类型,16字节),byte(1字节),struct , enum...

c# – 在泛型方法中返回特定类型【代码】

我写了以下方法:public T CreatePackage<T>() where T : new() {var package = new T();if (typeof(ComponentInformationPackage) == typeof(T)){var compInfoPackage = package as ComponentInformationPackage;// ...return compInfoPackage;}throw new System.NotImplementedException(); }我检查T是什么类型,根据这个我对待我的变量包.当我想要返回它时,我得到编译器错误. “ComponentInformationPackage类型不能隐式转换为T”...

c# – 关于使用XML作为存储过程参数和返回类型的意见

这对我来说是新的.我有一个新的老板,他坚持认为我们从现在开始的每一个查询都是带有XML序列化参数和返回类型的sproc. 我还没有进行过任何测试,但这在很多方面让我感觉有些过分,可能是性能杀手.你有什么经历?解决方法:虽然它是一个明显的性能杀手(想象一下解析了几个从sproc返回的XML),但它更像是一个生产力,可扩展性和可维护性杀手.在T-SQL中使用XML并不是无缝无缝的.支持将是一场噩梦:想象一下,在结果集中添加一个列,这将导致序...

C#和java是否支持静态类型?【代码】

我一直在使用Singleton类和静态方法,并总是想知道有一个单独的类型是一个静态类型并且无法实例化但只有静态方法有多好! 它易于阅读并且易于维护. 对于前public UtilType MyUtility {public void Calculate(int x,int y){return x+y;} }这里不允许实例化MyUtility,只能以静态方式访问其方法.解决方法:Why C# and java does not support util type ?要回答你的问题,我们无法读懂C#和Java设计师的想法,因此我们只能推断出他们不支持“...

c# – 类型推断不起作用【代码】

class Sample {public static T M<T, TParam1>(TParam1 param1){return default(T);} } class Program {static void Main(string[] args){double d = Sample.M((int)121);} }此代码不编译并导致以下错误消息:The type arguments for method‘ThreadPoolTest.Sample.M(TParam1)’ cannot be inferred fromthe usage. Try specifying the type argumentsexplicitly为什么在这个例子中没有类型推断?解决方法:类型推断只能使用方法调...

c# – 运算符’==’不能应用于’char’和’string’类型的操作数【代码】

我有一个注册申请,里面有“KeyChar”活动,它很棒!但是当我在这个应用程序中给出相同的代码行时,它给我操作符’==’/’!=’不能应用于’char’和’string’类型的操作数 似乎无法弄清楚为什么它在其他应用程序中工作但不在这里!任何帮助深表感谢 !private void textBox1_KeyPress(object sender, KeyPressEventArgs e){SqlConnection DBConnection = new SqlConnection("Data Source=DATABASE;Initial Catalog=imis;Integrated ...

c# – OO样式参数与类型参数【代码】

假设您有以下两种方法: 1号:void AddPerson(Person person) {// Validate personif(person.Name != null && IsValidDate(person.BirthDate)DB.AddPersonToDatabase(person); }2号:void AddPerson(string name, DateTime birthDate) {Person p = new Person(name, birthDate);DB.AddPersonToDatabase(person); }这两种方法中哪一种最好?我知道第一个更正确OO-wise,但我觉得第二个更可读,并且你不必确保对象是有效的,因为参数确保...

【转载】 C#中float、double以及decimal类型有何不同

在C#语言中,float、double以及decimal类型都可以用来表示小数,但三者还是有一定的不同,有效数字为相比的话,decimal类型的有效数字最大,float类型最小。计算浮点类型的运算,如果只有float和double类型选择的话,建议选择double类型,计算误差相对小一些。如果是涉及到财务或者货币金额等金融计算,建议使用十进制decimal类型,decimal的有效位数很大,达到了28位,可以保证计算结果更为精准。 针对这3种类型,其中float和doub...

【转载】C#中Convert.ToDouble方法将字符串转换为double类型【代码】

在C#编程过程中,可以使用Convert.ToDouble方法将字符串或者其他可转换为数字的对象变量转换为double类型,Convert.ToDouble方法有多个重载方法,最常使用的一个方法将字符串转换为double类型,方法签名为:static double ToDouble(string value)。当Convert.ToDouble无法转换时,将会引发程序异常,如果无法确定是否一定可转换,建议使用double.TryParse等方法。 例如有个字符串str的值为"33.33",将之转换为double类型可使用下列...

【转载】C#中Convert.ToSingle方法将字符串转换为Float类型【代码】

在C#编程过程中,可以使用Convert.ToSingle方法将字符串或者其他可转换为数字的对象变量转换为float类型,Convert.ToSingle方法有多个重载方法,最常使用的一个方法将字符串转换为float类型,方法签名为:static float ToSingle(string value)。当Convert.ToSingle无法转换时,将会引发程序异常,如果无法确定是否一定可转换,建议使用float.TryParse等方法。 例如有个字符串str的值为"33.33",将之转换为float类型可使用下列语句:...

c# – 何时分配类型?【代码】

所以,我最近一直在学习C#,但有一点我无法弄清楚或找到答案: 考虑一下:class Class1 {int myInt = 32; }还有这个:class Class1 {int myInt;public Class1(){myInt = 32;} }我只想知道何时以及为什么我应该使用一种方法来分配或实例化值.解决方法:这是贵公司的品味或编码标准问题. 我的经验法则是,如果我的所有构造函数都为变量赋值相同,我使用第一个形式;如果值来自外部,或者不同的构造函数为变量赋值不同,我使用第二种形式.

c# – 运算符’\u0026\u0026’不能应用于’int’和’bool’类型的操作数【代码】

我试图找出输入的数字是否可以被9和13整除,但它不会让我使用我需要的运算符,我知道变量类型是错误的但我不知道如何使它变量类型被接受,我是新编码所以答案应尽可能基本,而不是小便public bool IsFizzBuzz(int input) {if ((input % 9) && (input % 13) == 0){return true;}else{return false;} }解决方法:由于== operator有higher precedence而不是&& operator,你的if语句首先计算;(input % 13) == 0part返回true或false取决于你的...

C#值和引用类型【代码】

请参阅下面提到的以下代码行:byte[] a = { 1, 2, 3, 4 }; byte[] b = a; // b will have all values of a. a = null; 在C#中,byte []是一个引用类型.现在,如果第3行中的a = null,那么为什么b不是null,因为它是引用类型.如果我们检查b它仍将具有a的所有值.解决方法:首先在内存中的某处创建一个数组,例如从地址1000开始.a是引用,它不包含数组,它包含地址1000. b也包含此地址.在第3行中,您将a更改为指向null,但b仍然指向地址1000中的...

c# – 定义的类型名称在哪里?【代码】

当您获得变量的类型时,您可以检查其名称:if (my_type.Name=="Int32")但是写起来会更优雅if (my_type.Name==TypeNames.Int32)避免错别字.我可以自己定义这样的类,但也许已经定义了某个地方? 如果是的话,在哪里? 注意:请避免想知道“为什么你想首先得到变量的类型”,“最好使用’是’”等.非常感谢你! 编辑:同时,我跳到结论,它足以忽略对象的类型(my_type变量)并检查对象.换句话说,my_type不是必需的.我忘记了空案例:-(更少的代...