none
请教一下,这种语法是一种什么写法?为啥能运行? RRS feed

  • 问题

  • SqlParameter[] parameters = {
    					new SqlParameter("@控件用途", SqlDbType.NVarChar,255){Value="建筑功能"}};

    {Value ="建筑功能"}

    这是什么东西,为什么能直接能在new后面的构造函数后面直接跟上大括号?而且大括号里的语句,不需要分号结束?

    2012年10月28日 9:22

答案

全部回复

  • 这个语法可以拆开成两部分:

    1)new SqlParameter("@控件用途", SqlDbType.NVarChar,255){Value="建筑功能"}

    这是C#新语法,可以取代xx.属性=属性值;

    2)SqlParameter[] parameters = {……};

    这是一个数组,里边的“……”是一个个SqlParameter实体元素,当然不需要分号结束,难道你定义一个数组元素里边有分号吗?比如你:

    int[]numbers = new int[]{1;}难道你这样写?

    类比想想。


    我的博客园
    慈善点击,点击此处
    和谐拯救危机,全集下载,净化人心

    2012年10月28日 9:28
    版主
  • 这个语法可以拆开成两部分:

    1)new SqlParameter("@控件用途", SqlDbType.NVarChar,255){Value="建筑功能"}

    这是C#新语法,可以取代xx.属性=属性值;

    2)SqlParameter[] parameters = {……};

    这是一个数组,里边的“……”是一个个SqlParameter实体元素,当然不需要分号结束,难道你定义一个数组元素里边有分号吗?比如你:

    int[]numbers = new int[]{1;}难道你这样写?

    类比想想。


    我的博客园
    慈善点击,点击此处
    和谐拯救危机,全集下载,净化人心

    我问的是这句

    new SqlParameter("@控件用途", SqlDbType.NVarChar,255){Value="建筑功能"}

    new SqlParameter构造的是一个值,不是一个数组,如果顶帖的看不明白,完全可以改成这样

    SqlParameter parameters = new SqlParameter("@控件用途", SqlDbType.NVarChar,255){Value="建筑功能"};


    怎么解析?

    2012年10月28日 10:20
  • 对不起,前面已经回复你了(就是第一个回答)——这是C#的“语法糖”(Syntax Suger),相当于:

    SqlParameter parameters = new SqlParameter("@控件用途", SqlDbType.NVarChar,255);
    parameters.Value = xxx;

    大括号是简化写法而已。


    我的博客园
    慈善点击,点击此处
    和谐拯救危机,全集下载,净化人心

    2012年10月29日 1:47
    版主