【c#-将方法分配给委托,委托中参数比方法多】教程文章相关的互联网学习教程文章

如何使用C#delegate调用不同的方法,其中每个方法都有不同的out参数?【代码】

以下问题和答案解决了在委托中使用out参数的问题:with out parameter' rel='nofollow' target='_blank'>Func with out parameter 我需要更进一步.我有几个转换方法(函数),我想利用一个委托.例如,让我们从下面的示例方法开始:private bool ConvertToInt(string s, out int value) {try{value = Int32.Parse(s);return true;}catch (Exception ex){// log errorvalue = 0;}return false; }private bool ConvertToBool(string s, ou...

c# – 如何找到带有params参数的方法的用法,使得参数不为空?

我有一个方法,其最后一个参数是params string [].我希望搜索一个程序集,并计算params参数传递的用法数,至少有一个值. 这个方法有几百个调用,其中大部分都没有传递给最后一个params参数,所以使用像ReSharper的Find Usages这样的东西来计算那些没有传递给params参数的用法是不切实际的. 我如何使用反射/反汇编来做到这一点?或者,有没有可以做到这一点的工具?解决方法:一个简单的方法: >添加一个不带任何参数的重载.>重建 – 新的重...

c# – Struct隐式默认构造函数与无参数构造函数

好的,我们听说struct不能有一个默认的无参数构造函数,这很好(https://stackoverflow.com/questions/333829/why-cant-i-define-a-default-constructor-for-a-struct-in-net ).但文档说“每个值类型都有一个隐式默认构造函数,用于初始化该类型的默认值.”从http://msdn.microsoft.com/en-us/library/s1ax56ch.aspx 现在隐式默认构造函数和无参数默认构造函数之间有什么区别?解决方法:隐式默认构造函数是无参数构造函数,它由编译器自...

c# – 调用System.Drawing.Image.Save时出现无效参数错误【代码】

我在调用System.Drawing.Image.Save函数时收到无效参数错误.我谷歌并找到了一些建议,但没有任何作用.我想要做的是,当我上传一个图像,如果它比100kb大,我想将图像大小减少一半.请帮忙.System.Drawing.Image FullsizeImage = System.Drawing.Image.FromFile(realpath);FullsizeImage = System.Drawing.Image.FromFile(realpath); int fileSize = (int)new System.IO.FileInfo(realpath).Length;while (fileSize >...

c# – 如何接受函数引用作为参数?【代码】

我正在将一个EventHandler对象传递给这样的util函数:Timer newTimer(int interval, System.Timers.ElapsedEventHandler handler) {....timer.Elapsed += handler;.... }newTimer(1000, new System.Timers.ElapsedEventHandler(myTimer_Tick));但这很难看并强制每个调用者创建一个EventHandler对象.如何将其更改为此类似的内容?Timer newTimer(int interval, ref Function handler) {....timer.Elapsed += new System.Timers.Elap...

c# – 带有参数化单元测试的.NET测试框架,每个组合显示红色/绿色?

当您进行X单元测试* Y配置时,Parameterized Unit Testing非常棒. 我有3个单元测试,每个测试必须在5种特定情况下运行.我使用xUnit.net的Theory / PropertyData feature,效果很好. 问题:在Test Runner用户界面中,每单位测试有一个绿色/红色符号,表示3.这使得评估进度变得困难:符号为红色,直到所有配置完美运行.我想要15个符号,每个单元测试*配置一个,以了解哪个特定组合出错了. xunit.net has yet to implement the feature显示15个...

c# – 当位图是一定大小时,Bitmap.LockBits错误“参数无效”?【代码】

我创建了一个方法,我想采取图像蒙版并将其应用于另一个图像.如果你看一下这个post,你会看到一个帧图像.该帖子中的帧图像是maskingImage,背景图像是imageToMask.遮蔽图像实际上是一个粉红色中心的图像.这是该方法经历的过程: >屏蔽图像是PNG,要屏蔽的图像是JPG.>该方法跟踪掩蔽图像并绘制图像以掩盖它.这有助于保持外部透明度不变.>然后在掩蔽图像下面绘制输出形式,我们将粉红色的颜色透明. line var bitsimageToMask = imageToMas...

c# – 为什么’int’可以被视为’ushort’而不是作为扩展方法中的参数传递时,它是什么?它是一个优雅的解决方案?【代码】

我有这个扩展方法:public static bool In<T>(this T source, params T[] list) {return list.Contains(source); }现在我需要将上述方法用于ushort.当我尝试ushort p = 3; if (p.In(1, 2, 3, 4, 5))return;第一行将3投射到井上.但是当3作为参数传递时,我得到了错误‘ushort’ does not contain a definition for ‘In’ and the best extension method overload ‘Extensions.In(T, params T[])’ has some invalid arguments.但这...

c# – 在调用基础构造函数之前处理参数【代码】

是否可以在将参数传递给基础构造函数之前处理它们? 如:A --> B其中A是抽象类,B是子类. A的构造函数是这样的:Protected A (MyObject myObject)B的构造函数是这样的:Public B (string objectName)我希望它是这样的Public B (String objectName) : base (MyObject myObject) { myObject = new MyObject (objectName); }解决方法:如果你想做一些非平凡的事情(它不能自然地适合你可以内联到基本调用中的单个表达式),那么唯一的方法是...

c# – 使用RhinoMocks模拟参考参数【代码】

我的代码,我有以下电话:string proposed=string.Empty;validator.IsValid(arg0, arg1, ref proposed);我在我的测试中存根验证器,并希望该存根改变引用的建议字符串变量的内容.我尝试在WhenCalled-Handler中设置参数的值,但这显示没有效果.validatorStub.Stub(x => x.IsValid(arg0, arg1, ref proposed)).IgnoreArguments().WhenCalled(invocation =>{invocation.Arguments[2] = "123456"; }).Throw(new ValidationException(strin...

c# – 调用具有未知类型参数的Action(Action)【代码】

我正在创建一个API,我的目标是公开一个可以像这样调用的方法:Library.AddCallback<string>(Type.ChatMessage, GotMessage);private void GotMessage(string message) {//... } //or Library.AddCallback<int>(Type.Number, GotNumber);private void GotNumber(int number) {//... }类型< int>,< string>可以是任何类型. 在库中,该方法看起来像这样:public void AddCallback<T1>(object type, Action<T1> callback) {//... }问题是...

c# – 第二个参数首先依赖的通用函数【代码】

是否有可能在C#中创建一个泛型函数,其中第一个参数是枚举(几个中的一个,所以它必须是通用的我猜),第二个参数被强制为选择作为第一个参数的枚举值?我理解必须使用泛型,但我想不出如何编写这样的表达式,或者甚至可能. 编辑:添加了代码示例我知道这个代码示例不起作用,但它说明了我正在思考的方向.public List<int> Call<EnumValue>(Type enumType, EnumValue enumValue) where EnumValue : Enum.GetValues(typeof(enumType)) {// S...

我们可以在c#中的datatable.select中添加参数吗?【代码】

我想知道是否可以在datatable.select(expression)中添加参数.例如string query="Name=@Name"; //dt is comming from database. dt.Select(query);如何添加此参数@Name.我需要比较包含单引号的值,并在上述情况下失败. 提前致谢解决方法:你可以使用String.Format,你需要使用两个单引号来转义:string query = string.Format("Name='{0}'", name.Replace(@"'", "''")); var rows = dt.Select(query);或者,如果你想使用喜欢:...

c# – 代表如何记住它的参数?【代码】

参见英文答案 > The scope of variable in inner anonymous method 2个考虑以下代码:public ModelView(Model model) : this() {Loaded += (object sender, RoutedEventArgs e) =>{DataContext = model;}; }当Loaded事件再次运行时,参数模型会出现在内存中,但它从未明确保存过,是吗?解决方法:除了@ Avner的回答,这就是C#编译器(有点)为您生成的内容:public ModelView(Model model) : this() ...

是否允许以某种形式在C#中使用通用通用类型参数【代码】

我想创建以下类片段class Lookup<TKey,TValue,TCollection> where TCollection : ICollection<> {public TCollection<TKey> _KeyCollection;public TCollection<TValue> _ValueCollection; }这种模式一般可以在C#中使用吗?在当前形式中,编译器不喜欢它.您似乎无法将类型参数约束为泛型.然而,想要这样做似乎是合理的.有什么技巧可以实现吗? 注意:此问题专门针对泛型和类型约束.它并不是在寻找你认为我可能会在更广泛的应用程序中...