草庐IT

c# - C# 类型的方法重载

我想知道以下是否可行。创建一个接受匿名类型(string、int、decimal、customObject等)的类,然后具有根据类型执行不同操作的重载方法。示例classTestClass{publicvoidGetName(){//doworkknowingthatthetypeisastring}publicstringGetName(){//doworkknowingthatthetypeisanint}publicstringGetName(intaddNumber){//doworkknowingthatthetypeisanint(overloaded)}publicstr

c# - 不可空类型的通用约束

我有以下类(class):publicclassKeyDTO{publicTId{get;set;}}到目前为止一切顺利,但我希望类型参数T是不可为null的类型。我在某处读到这可能是可行的:publicclassKeyDTOwhereT:IComparable,IComparable{publicTId{get;set;}}但是,如果我改变publicTId至publicT?Id,我得到一个编译错误,告诉我T必须是不可空的。如何指定泛型类型参数必须是不可空的?编辑我想完成这个因为我想注释我的Id属性(property)与[Required]属性如下:publicclassKeyDTO

c# - 如何确定属性是否被覆盖?

我正在做一个项目,我需要在其中注册所有属性,因为系统非常庞大,需要大量工作才能注册我想要为Xaml所依赖的所有属性。目标是找到树顶部的所有属性。基本上是这样publicclassA{publicintProperty1{get;set;}}publicclassB:A{publicintProperty2{get;set;}publicvirtualintProperty3{get;set;}}publicclassC:B{publicoverrideintProperty3{get;set;}publicintProperty4{get;set;}publicintProperty5

c# - 有没有办法在 C# 中隐式构造类型?

我读到一个有用的技巧,它告诉您如何通过为您正在使用的每个域类型创建一个数据类型来避免在代码中使用错误的域数据。通过这样做,编译器将防止您意外混合类型。例如,定义这些:publicstructMeter{publicintValue;publicMeter(intvalue){this.Value=value;}}publicstructSecond{publicintValue;publicSecond(intvalue){this.Value=value;}}允许我不要混淆米和秒,因为它们是不同的数据类型。这很棒,我可以看到它的用处。我知道您仍然需要定义运算符重载来处理这些类型的任何

c# - 系统.Data.SqlClient.SqlException : Invalid column name 'phone_types_phone_type_id'

我正在尝试从我的一些模型中获取信息,这些模型与我的主要员工模型具有外键关系。如果我单独绘制每个模型,我可以像往常一样毫无问题地访问它们,但我必须访问多个不同的网页才能这样做。我正在尝试将我的几个模型合并为一个Controller,并以这种方式使用它们。不幸的是,当我尝试访问这些模型时,出现了一个奇怪的错误:System.Data.SqlClient.SqlException:Invalidcolumnname'phone_types_phone_type_id'.搜索我的代码后,显然phone_types_phone_type_id出现的唯一位置是在我的迁移代码中。总的来说,我对C#和

c# - 为什么 List<T> 不实现 IOrderedEnumerable<T>?

我想使用有序的枚举,并使用接口(interface)作为返回类型而不是具体类型。我需要返回一组有序的对象。但是,当使用IList时执行我不能返回IOrderedEnumerable,作为IList不继承IOrderedEnumerable。在下面的示例中,我有一个带有系列存储库的View模型,实现为List。系列对象,因为它们位于List中。,下令。我是一个访问器方法,我想返回经过过滤的系列集合,其中仅返回特定类型的系列对象,同时保持过滤元素之间的原始顺序。//////Representstheviewmodelforthismodule.///publicclassViewModel

c# - 即使使用复制本地也无法加载文件或程序集 'Microsoft.SqlServer.Types

我有一份关于我的网络应用程序的内部报告,当我浏览到它时,它会按预期在本地显示。我使用带有标准apsx网页的rdlc和xsd来呈现报告。我现在已经部署到我的登台服务器,当我尝试浏览到显示我得到的报告的页面时:AnunexpectederroroccurredinReportProcessing.Couldnotloadfileorassembly'Microsoft.SqlServer.Types,Version=11.0.0.0,Culture=neutral,PublicKeyToken=89845dcd8080cc91'oroneofitsdependencies.Thelocat

c# - 当 new-able 使用 new T(),否则使用 default(T)

我正在研究C#泛型函数。错误时,如果泛型类型可以是new-able,返回newT(),否则返回default(T)。代码如下:privateTFunc(){try{//trytodosomething...}catch(Exceptionexception){if(Tisnew-able)//我知道对于那些使用newT()的人来说,它需要whereT:new()。这个问题是,如何在运行时判断这个? 最佳答案 您只需要检查该类型是否具有无参数构造函数。您可以通过以空类型作为参数调用Type.GetConstructor方法来实现。va

c# - 十六进制表示法和有符号整数

这是一个followupquestion.因此,Java将整数存储在two's-complements中您可以执行以下操作:intALPHA_MASK=0xff000000;在C#中,这需要使用无符号整数uint,因为它将其解释为4278190080而不是-16777216。我的问题是,如何在C#中以十六进制表示法声明负值,整数在内部是如何表示的?这里与Java有什么区别? 最佳答案 C#(更确切地说,.NET)也使用二进制补码,但它同时支持有符号和无符号类型(Java不支持)。位掩码更自然地是无符号的东西-为什么一个位应该与所有其

c# - 什么是 Type.GUID,它与 Type.Equals() 有什么关系?

我在尝试将System.RuntimeType的实例与泛型类型TOut进行比较时遇到了一些有趣的行为:TyperuntimeT=methodInfo.ReturnType;//getRuntimeTypeusingreflectionTypegenericT=typeof(TOut);//ThisconditionfailsbecauseruntimeTdoesn't//seemtoincludeanassemblyqualifiednameif(runtimeT.Equals(genericT)){...}这是我的证据:免责声明:我不知道GUID在CLR/类型系统的上下文中到底是什么