【使用嵌套在通用类中的类作为C#中的类型参数】教程文章相关的互联网学习教程文章

C# ref引用参数与out输出参数的使用与区别【图】

日期:2020.03.09 15:581、传递到ref参数的实参参数必须先初始化,方法内也可取到该值 2、传递至out参数的实参可以不初始化,因为即使初始化实参,out方法中也无法取得该值,但在方法中必须初始化(即使参数不被使用) 3、无法同时使用ref和out方法,不可以同时重载4、一个方法中可以同时使用多个Ref或Out 总结:ref:是传入值 但是在经历ref方法后,会改变传入的值,侧重修改->有进有出;out:保证每一个传出变量都必须被赋值,完...

C#代码实现对HTTP POST参数进行排序【代码】

1privatestaticstring GetSortedParas(Dictionary<string, string> dic)2{3 dic = dic.OrderBy(key => key.Key).ToDictionary(keyItem => keyItem.Key, valueItem => valueItem.Value);4var sbPara = new StringBuilder(1024);5foreach (var para in dic.Where(para => !para.Value.IsNullOrWhiteSpace()))6 {7 sbPara.AppendFormat("{0}={1}&", para.Key, para.Value);8 }9return sbPara.ToString().TrimEnd(‘...

C#开发命令执行驱动程序 之 控制标志的命令行参数

/// <summary> /// 在cmd窗体内执行如下: /// CtrlOrderDrierApp.exe -f -t /// 返回: /// FOO /// Show Table /// </summary> /// <param name="args"></param> static void Main(string[] args) {   if (args.Length > 0)   {     IEnumerator arrIEnum = args.GetEnumerator();     while ...

c#-编译后的动态Linq Func <>的缓存委托*没有*参数?【代码】

我正在使用Dynamic LINQ库中的Dynamic.ParseLambda方法来创建表达式,将每个表达式编译为Func,并将每个缓存在字典中:// parse some dynamic expression using this ParseLambda sig: Expression<Func<TArgument,TResult>> funcExpr = System.Linq.Dynamic.ParseLambda<TArgument, TResult>(expressionString, // string for dyn lambda expressionparameters); // object[] params// then compile & cache the output of this as ...

c# – Unity选择带参数的构造函数【代码】

我正在注册这样的类型:IUnityContainer container = new UnityContainer().RegisterType<IActiveDirectoryUser, ADUser>();ADUser类包含2个构造函数,一个无参数,一个具有单个参数.当解析器解决它时,它会选择带参数的解析器.如何告诉它使用无参数控制器?解决方法:注册类型时,使用InjectionConstructor指示Unity应该使用无参数构造函数:IUnityContainer container = new UnityContainer(); container.RegisterType<IActiveDirecto...

c# – 方法和扩展方法参数之间的类型推断差异【代码】

假设我定义了以下方法:int ReturnNumber(int number) {return number; }现在,让我们说我还定义了以下两种方法;常规方法: void Print(Func< int,int>函数) 和扩展方法: static void Print(这个Func< int,int>函数) 我可以这样称呼前者: 打印(ReturnNumber); //常规方法调用,似乎隐式将ReturnNumber转换为Func< int,int> 但我不能用后者做到这一点: ReturnNumber.Print(); //扩展方法调用,似乎没有进行隐式转换 – 导致编译器错...

c#-获取ICollection实现类的类型参数【代码】

我正在.net中编写一个小的序列化库.目标是要替代XmlSerialize,但更易于配置,并且不会使模型与属性混淆. 我面临的问题是我需要每个ICollection< T>的类型.我在遍历模型时发现.天真的方法是这样的:var theType=myModel.GetType().GetGenericArguments()[0];但这对于从ICollection< T>派生的类没有帮助.带有特定的Tpublic class MyClass:A,ICollection<B>{}我尝试通过反射获取界面var iCollectionInterface =o.GetType().GetInterfac...

c# – 将NULL传递给COM接口方法的ref / out参数【代码】

如果定义为[In,Out] ref int pchEaten,如何将NULL传递给COM接口方法的参数? 例如,请考虑以下界面:[ComImport, Guid ("000214E6-0000-0000-C000-000000000046")] [InterfaceType (ComInterfaceType.InterfaceIsIUnknown)] internal interface IShellFolder {void ParseDisplayName ([In] IntPtr hwnd,[In] IBindCtx pbc,[In, MarshalAs (UnmanagedType.LPWStr)] string pszDisplayName,[In, Out] ref uint pchEaten,[Out] out PID...

c# – 类型不能在泛型类型或方法中用作类型参数“T” – 为什么?【代码】

参见英文答案 > Why does a generic type constraint result in a no implicit reference conversion error? 5个我正在尝试从接口继承两个不同的模型.这些模型应该作为List或Collection传递给Method.现在我收到此错误消息:The type 'InheritanceTest.FooModel' cannot be used as type parameter 'T' in the generic type or method 'InheritanceTest.Service.DoSomethingWith<T>(System.Coll...

C#获取参数,Request[] 的封装

public T GetParamValue<T>(string name, T defValue) {if (string.IsNullOrEmpty(name))return defValue;try{return (T)Convert.ChangeType(Request[name], typeof(T));}catch (Exception ex){return defValue;} }

c# – 如何使用继承类型推断类型参数?【代码】

我有以下设置:public abstract class super { }public class sub : super { }public static void Foo<T>(T element, Action<T> action)where T : new() { }我想这样做:Action<super> superAction = (s) => { }; Foo(new sub(), superAction);然而这失败了,因为第二行试图调用Foo< super>而不是Foo< sub>.这可行:Foo<sub>(new sub(), superAction);>无论如何在这样的情况下推断出类型参数?>为什么它首先不能推断出正确的类型? ...

c# – 具有动作/函数参数的接口的Moq设置【代码】

我试图模拟对服务器的调用,并验证测试的代码调用正确的方法.代码结构如下:public interface IServerAdapter {void CallServer(Action<IServerExposingToClient> methodToCall, out bool serverCalled);object CallServer(Func<IServerExposingToClient, object> methodToCall, out bool serverCalled); }public interface IServerExposingToClient {Resource GetResource(string id);void AddResource(Resource resource); }我正在...

c# – 从类型’System.String’到类型”Y’的参数转换失败,因为没有类型转换器可以在这些类型之间进行转换【代码】

我坚持这个错误,我检查的值不是null.当我尝试按下“保存”按钮时出现此错误. 请帮帮我,这是错误:The parameter conversion from type 'System.String' to type 'ULIV.ViewModels.NewProposal' failed because no type converter can convert between these types.ModelState.IsValid为false. 这是使用的视图模型:public class PurchaseOrderViewModel {[Key]public int ID { get; set; }public IEnumerable<Institution> Institu...

c# – 将数组作为参数传递【代码】

如果我们修改在方法中作为参数传递的数组的内容,则对参数的副本而不是原始参数进行修改,因此结果不可见. 当我们调用具有引用类型参数的方法时,会发生什么过程? 这是我想问的代码示例using System;namespace Value_Refrence_Type {class Program{public static void Main(){int[] callingarray = { 22, 200, 25485 };abc(callingarray);Console.WriteLine("This is callingarray");foreach (int element in callingarray)Console.W...

c# – 将lambda指定为通过反射调用的泛型方法的参数【代码】

考虑一个通用方法如下:class SomeClass {public static void SomeMethod<T>(Func<T>); }我想用反射来调用这个方法.这是我能做到的程度:_SomeMethod = typeof(SomeClass).GetMethod("SomeMethod",BindingFlags.Public | BindingFlags.Static); Type type = typeof(SomeType); //Actually SomeType is extracted using reflection and it's not fixed MethodInfo toBeCalled = _SomeMethod.MakeGenericMethod(type); object obj = ...