C#已建有代表Action<>
和Func<>
。 是否可能为这些代表使用回法的类型参数? 例如,该法典:
public delegate void DTest( ref Guid a );
public event DTest ETest;
汇编。 但是,如果我使用<代码>Action<>,则不会汇编:
public event Action< ref Guid > ETest;
任何方面?
C#已建有代表Action<>
和Func<>
。 是否可能为这些代表使用回法的类型参数? 例如,该法典:
public delegate void DTest( ref Guid a );
public event DTest ETest;
汇编。 但是,如果我使用<代码>Action<>,则不会汇编:
public event Action< ref Guid > ETest;
任何方面?
无,您可使用<条码>行动条码>代表的逐条参考。 虽然在框架中有一种“以参考方式传递的类型”的概念作为<代码>Type,但就C#而言,这一概念实际上并不是一种正常意义上的类型。 <代码>ref 是参数的变体,不是类型名称的一部分,如果你看到我的含义。
然而,你可以建立自己的同类,例如:
delegate void ActionRef<T>(ref T item);
当然,如果你想要同一代表中包含有可憎的参数和不可靠的参数,那么你就能够形成一套可怕的组合:
delegate void ActionRef1<T1, T2>(ref T1 arg1, T2 arg2);
delegate void ActionRef2<T1, T2>(T1 arg1, ref T2 arg2);
delegate void ActionRef3<T1, T2>(ref T1 arg1, ref T2 arg2);
只要你提到的是复杂的物体(具有特性)。
例:
public class MyComplexObject
{
/// <summary>
/// Name provided for the result.
/// </summary>
public string Name { get; set; }
/// <summary>
/// Value of the result.
/// </summary>
public object Value { get; set; }
}
行动:
Action<MyComplexObject> myAction = (MyComplexObject result) =>
{
result.Value = MyMethodThatReturnsSomething();
};
自MyComplex以来 目标参考资料没有改动,数据保留。
http://xcalibur37.wordpress.com/10/26/c-how-to-pass-object-viss-into-actions/“rel=“noreferer” 载于我的博客。
What is the use of default keyword in C#? Is it introduced in C# 3.0 ?
I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...
I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...
I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...
I have two EF entities. One has a property called HouseNumber. The other has two properties, one called StartHouseNumber and one called EndHouseNumber. I want to create a many to many association ...
How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...
Since I cannot order my dictionary, what is the best way of going about taking key value pairs and also maintaing an index?
Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...