草庐IT

其中包括

全部标签

c# - 如何实现通用 GetById() 其中 Id 可以是各种类型

我正在尝试实现一个通用的GetById(Tid)方法,该方法将满足可能具有不同ID类型的类型。在我的示例中,我有一个实体,其ID类型为int,其中一个ID类型为string。但是,我一直收到错误,我不知道为什么:“int”类型必须是引用类型,以便在方法IEntity的泛型类型中将其用作参数“TId”实体接口(interface):为了迎合我的域模型,它可以具有int或string类型的Id。publicinterfaceIEntitywhereTId:class{TIdId{get;set;}}实体实现:publicclassEntityOne:IEntity{publicintId{

c# - 为什么 VS 警告我 typeof(T) 永远不是泛型方法中提供的类型,其中类型参数仅限于实现 T?

我希望问题是正确的,所以让我们举个例子。想象以下通用方法:publicabstractclassBase:IDisposable{publicstaticIEnumerableGetList()whereT:Base{//ToensureTinheritsfromBase.if(typeof(T)isBase)thrownewNotSupportedException();//...}}根据MSDN关键字where将类型参数T限制为Base类型或从此类继承。[...]awhereclausecanincludeabaseclassconstraint,whichstatesthatat

c# - IsPrimitive 不包括可为空的原始值

我想检查一个类型是否是原始类型并使用了以下代码:returntype.IsValueType&&type.IsPrimitive;只要原语不可为空,这就可以正常工作。例如int?,如何检查类型是否为可空原始类型?(仅供引用:int上的type.IsPrimitive==false?) 最佳答案 来自MSDN:TheprimitivetypesareBoolean,Byte,SByte,Int16,UInt16,Int32,UInt32,Int64,UInt64,IntPtr,UIntPtr,Char,Double,andSingle

c# - 字符串函数字典 c#,其中函数具有不同的参数

基本上我试图在C#中创建一个字符串来函数字典,我已经看到它是这样完成的:Dictionary>但是问题是我想放入字典的函数都有不同数量的不同类型的参数。因此,我该如何制作一本能做到这一点的字典?亚当 最佳答案 您可以使用paramsstring[]参数定义自己的委托(delegate),如下所示:delegateTOutParamsFunc(paramsTIn[]args);然后像这样声明你的字典:Dictionary>functions;所以,你可以这样使用它:publicstaticstringConcat(string[]ar

c# - 如果有任何格式,我该如何格式化以仅包括小数

如果我只想显示不是整数的小数,那么设置小数格式的最佳方法是什么。例如:decimalamount=1000Mdecimalvat=12.50M当我想要格式化时:Amount:1000(not1000.0000)Vat:12.5(not12.50) 最佳答案 decimalone=1000M;decimaltwo=12.5M;Console.WriteLine(one.ToString("0.##"));Console.WriteLine(two.ToString("0.##")); 关于

c# - 如何创建一个可以在其中放置其他控件的 UserControl?

在WinForms中,如何创建UserControl当我放在我的表单上时,我可以通过从工具箱中拖动它们来添加其他控件,就像所有容器控件(面板、组框等)一样?我试图通过将它们放在我的控件中来添加控件,但是当我移动我的控件时,我添加的控件保持在它们所在的位置,如果我使用Panel而不是我的控件,则不会发生这种情况。(其他控件将随面板移动)。 最佳答案 例如,与Panel控件不同,UserControl一旦放置在另一个窗体上,就不会充当容器控件。当您设计UserControl本身时,有完整的设计时支持,但它的默认行为不允许它在被放置在另一

c# - Linq 查询字典,其中列表中的值

我有一个Dictionary和另一个List.我想要实现的是一个linq查询,用于从字典中获取所有项目,其中所述字典中的任何值都在List中。.我发现这篇文章很有帮助,LINQqueryingaDictionaryagainstaList.并且能够编写以下linq表达式,但是我的结果实际上从未返回任何内容。到目前为止我有什么。Data是字典和PersonList是字符串列表。varPersons=PersonList.Where(x=>Data.ContainsKey(x)).Select(z=>new{key=z,value=Data[z]}).ToList();

c# - 从 Roslyn ClassDeclarationSyntax 获取类全名(包括命名空间)

我有一个来自roslyn语法树的ClassDeclarationSyntax。我是这样读的:vartree=SyntaxTree.ParseText(sourceCode);varroot=(CompilationUnitSyntax)tree.GetRoot();varclasses=root.DescendantNodes().OfType();标识符只包含类的名称,但没有有关命名空间的信息,因此缺少完整的类型名称。喜欢“MyClass”但没有“Namespace1.MyClass”获取语法的命名空间/FulltypeName的推荐方法是什么? 最佳答案

c# - 反射(reflect)接口(interface)的所有属性,包括继承的属性?

我有一个表示接口(interface)的System.Type实例,我想获取该接口(interface)上所有属性的列表——包括从基接口(interface)继承的那些。我基本上希望从接口(interface)获得与类相同的行为。例如,给定这个层次结构:publicinterfaceIBase{publicstringBaseProperty{get;}}publicinterfaceISub:IBase{publicstringSubProperty{get;}}publicclassBase:IBase{publicstringBaseProperty{get{return"Bas

c# - 保留一个 Dictionary<Type, MyClass<T>> ,其中元素可以按类型引用

我有一个名为EntityTypeTransform的抽象类,它有一个抽象方法,用于保存将IDataRecord转换为T实例的Func委托(delegate)。publicabstractclassEntityTypeTransformwhereTEntityType:class{publicabstractFuncGetDataTransform();}该类的实现可能看起来像(看起来像):publicclassTaskParameterEntityTypeTransform:EntityTypeTransform{publicoverrideFuncGetDataTransform()