C#中的事件签名

时间:2017-03-24 14:59:23

标签: c#

我有一点但很难理解下面这行代码:

types(lstTypes[i].AvailableDatatype);

我不确定AvailableDatatype的目的是什么。

这里是完整的代码......

namespace ConsoleApplicationTest
{
    class Program
    {
        static void Main(string[] args)
        {

            List<DotNet> lstTypes = new List<DotNet>();
            DotNet bltypes = new DotNet();
            bltypes.AvailableDatatype = "bool";
            lstTypes.Add(bltypes);    

            DotNet strTypes = new DotNet();
            strTypes.AvailableDatatype = "string";
            lstTypes.Add(strTypes);

            DotNet intTypes = new DotNet();
            intTypes.AvailableDatatype = "int";
            lstTypes.Add(intTypes);

            DotNet decTypes = new DotNet();
            decTypes.AvailableDatatype = "decimal";
            lstTypes.Add(decTypes);    

            types += x =>
            {
                Console.WriteLine(x);
                Console.ReadLine();
            };

            for (int i = 0; i <= lstTypes.Count - 1; i++)
            {
                types(lstTypes[i].AvailableDatatype);
            }    
        }

        static event Action<string> types;    
    }    

    public class DotNet
    {
        public string AvailableDatatype { get; set; }
    }    
}

1 个答案:

答案 0 :(得分:0)

types事件表示以string为唯一参数的方法。

AvailableDatatypestring类型,因此可以用作types的参数。

此代码正在执行的操作是使用这些元素“types作为这些方法的参数,为lstTypes列表的每个元素调用事件AvailableDatatype的每个委派方法。” / p>