【c# – 类型<> /无类型设计】教程文章相关的互联网学习教程文章

C#中的类型推断【代码】

我知道msdn应该是第一个去的地方,它将在我得到这里的独家新闻之后.作为技术规范的一部分,msdn不会真正提供的是我现在要问的问题: >这个主题在日常开发过程中的用途如何?>它在clr中的任何形状或形式与匿名类型之间是否存在相关性?>如果没有它可以做什么呢?>哪些.net功能取决于主题,如果不作为框架的一部分就不可能存在? 为了记录这个问题的细节,如果使用lambdas和类型推断调用该方法,那么知道(在伪代码中)编译器如何实际确定所...

通用类型推断如何在C#中工作?【代码】

如果我有以下代码private BaseMessage getMessage() {return new OtherMessage(); }private void CheckType<T>(T type) {Console.WriteLine(type.GetType().ToString());Console.WriteLine(typeof(T).ToString()); }private void DoChecks() {BaseMessage mess = getMessage();CheckType(mess); }为什么我会输出不同的类型?有没有得到类型推断使用传递的对象的实际类型?解决方法:泛型类型推断意味着编译器会自动解析传递的参数类...

C# – Ref类型比较指针混乱?【代码】

我正在通过C#阅读Jeffrey Richters CLR,并在其中用ref参数说,引用本身是按值传递的.这对我来说很有意义,似乎与指针类似. 即在C中,如果我将指针传递给函数,然后通过malloc分配指针,它将指针更改为指向新的内存位置,但是我知道,因为指针本身是一个副本,它不会重新分配原来的指针.传递给函数.为了完成对函数外部指针的更改,我必须使用双指针. 但是,在C#中:void Swap(ref Object a, ref Object b) {Object t = b;b = a;a =t ; }作品.这...

c# – 使用类型变量转换为枚举【代码】

我的部分软件是使用反射.我遇到的问题是,虽然我可以获取属性的类型,但我无法使用PropertyInfo中的Type转换字符串值.这就是我在示例代码中使用t的原因. 以下代码演示了错误消息作为代码注释的问题.语法错误在t上.我该如何解决这个问题?谢谢class Program {static void Main(string[] args){Type t = typeof(Letters);Letters letter = "A".ToEnum<t>(); //-- Type or namespace expected.} }public enum Letters { A, B, C }//-- T...

C#vs C – 类型,继承和vtable【代码】

我无法理解导致C和C#之间差异的原因. 首先,我们有一个基类包含虚函数的示例.class Base { protected:int super; public:virtual int f() = 0; };class Derived : public Base { public:int extraA;int f(){ return 1; } };int main() {Derived *d = new Derived();std::vector<Base*> v;v.push_back(d);for(int i=0; i < v.size() ;i++){// Output "Derived"std::cout << typeid(*v[i]).name() << std::endl;}return 0; }正如预期的...

c# – 如何迭代这种特殊类型的字典?【代码】

我有一堆来自数据库的结果,我保存在Dictionary< int,Result>()中. 我有的Result类是:public int Id { get; set; } public string something { get; set; } public string somethingtwo { get; set; } public string somethingthree { get; set; } public DateTime Posted { get; set; } public string Location { get; set; } public bool somethingfour { get; set; }所以,Dictionary< int,Result>里面有很多结果,我想迭代它们.我...

c# – ‘is’运算符不能应用于静态类型的操作数【代码】

在这种情况下,这个错误意味着什么?if (value == null)return "";if (value is Nullable && ((INullable)value).IsNull) //error on this linereturn "";if (value is DateTime) {if (((DateTime)value).TimeOfDay.TotalSeconds == 0)return ((DateTime)value).ToString ("yyyy-MM-dd");return ((DateTime)value).ToString ("yyyy-MM-dd HH:mm:ss"); }我搜索但没有得到任何关于此错误的信息.我在Mono(2.10.8.1)上尝试这个.这是一个...

c# – 排序十进制类型的列? (可为空)在WPF DataGrid中【代码】

我正在使用WPF中的DataGrid与几个十进制列.我最近将绑定属性更改为十进制?现在这些列无法通过单击标题进行排序(就像我的其他列一样).但是,我仍然可以使用代码隐藏中的方法对它们进行排序.有人知道是否可以对小数进行排序?单击标题列或其后面的原因是什么,如果不可能?这是我的相关代码: 有问题的几列(该属性附加到DataGrid的行为.启用/禁用行为没有区别):[Column("PPAvg", 7)] public decimal? ProjectedPointsAvg { get; set;...

c# – 在连接两个数据表期间无效的匿名类型成员声明符【代码】

我尝试进行以下连接:var collection = from t1 in dt1.AsEnumerable()join t2 in dt2.AsEnumerable()on new { t1.["main_code"], t1["year"]} equals new { t2["dep_code"], t2["dep_year"] }select new { emp_name = t1["name"], bonus_desc = t1["bonus_desc"],dep_name = t2["dep_name"] };但我面临以下构建错误!!invalid anonymous type member declarator解决方法:匿名连接类型的名称属性:var collection = from t1 in dt1...

C#中的通用继承:无法将类型’MyWidget’隐式转换为’IWidget’【代码】

我在使用泛型设置继承时遇到问题. 从本质上讲,我想要做的是拥有一个本身接受接口的通用接口.棘手的部分是“内部”界面可以在其上面分层更具体的界面. 以下是我正在尝试构建的结构的代表性示例:public interface IThing { }public interface IMoreSpecificThing : IThing { }public interface IWidget<T> where T : IThing { }public class MySpecificThing : IMoreSpecificThing { }public class MyWidget : IWidget<MySpeci...

c# – 无法将类型’System.Collections.Generic.List>’隐式转换为’System.Collections.Generic.List【代码】

我收到以下错误.我用Google搜索了一天多,但我找不到确切的解决方案,请帮帮我谢谢ERROR: Cannot implicitly convert type System.Collections.Generic.List<System.Collections.Generic.IEnumerable<ADCO.eJMC.EntityDataModel.ShareholderUser>>to System.Collections.Generic.List<ADCO.eJMC.EntityDataModel.ShareholderUser>我使用了以下代码List<ShareholderUser> list = new List<ShareholderUser>(); list = dataContext.EJM...

c# – 使用AutoMapper,“相同类型的实体已经具有相同的主键值”错误【代码】

当我使用AutoMapper时,出现此错误:Attaching an entity of type ‘MyProject.DAL.User’ failed because another entity of the same type already has the same primary key value. This can happen when using the ‘Attach’ method or setting the state of an entity to ‘Unchanged’ or ‘Modified’ if any entities in the graph have conflicting key values. This may be because some entities are new and have not ...

c# – String泛型参数是否被视为值类型或引用类型?

从MSDN Generics in the Run Time文件我注意到:When a generic type is first constructed with a value type as a parameter, the runtime creates a specialized generic type with the supplied parameter or parameters substituted in the appropriate locations in the MSIL. Specialized generic types are created one time for each unique value type that is used as a parameter.和Generics work somewhat differentl...

c# – DownloadStringAsync的返回类型为void.那我该如何等待呢?

看看这里的文档https://msdn.microsoft.com/en-us/library/ms144202(v=vs.110).aspx,DownloadStringAsync的返回类型为void,这意味着VS给了我一个错误Cannot await ‘void’那么我该如何使用这种方法呢?解决方法:使用支持async / await模式的DownloadStringTaskAsync public Task< string> DownloadStringTaskAsync(Uri地址)

c# – 如何访问类型的“静态”实例成员?【代码】

我想访问“静态”(即在编译时)给定类型的实例成员(当然要检索它们的静态属性,而不是实际值或类似的东西). 考虑:interface IFoo {int X { get; } }我想直接访问X以检索编译时已知的内容,例如:Console.WriteLine(typeof(IFoo::X).Name);反射是运行时,我问的是编译时.解决方法:不,没有C#运算符以像这样的编译时类型安全的方式引用成员.这是一个feature that is frequently requested, but really difficult to design well.在C#6中引...