C# 怎么构造匿名对象转换成下面的Jason对象?

忆水思寒 2018-11-06 03:26:22
想用类似如下的匿名对象通过JavaScriptSerializer创造Jason对象,但像"sub_button"下面的最后两个大括号不知道怎么写
var date=new
{
var button = new
{
type = "click",
name = "今日歌曲",
key = "V1001_TODAY_MUSIC"
};
}

要构造的Jason对象如下:
{
"button":[
{
"type":"click",
"name":"今日歌曲",
"key":"V1001_TODAY_MUSIC"
},
{
"name":"菜单",
"sub_button":[
{
"type":"view",
"name":"搜索",
"url":"http://www.soso.com/"
},
{
"type":"miniprogram",
"name":"wxa",
"url":"http://mp.weixin.qq.com",
"appid":"wx286b93c14bbf93aa",
"pagepath":"pages/lunar/index"
},
{
"type":"click",
"name":"赞一下我们",
"key":"V1001_GOOD"
}]
}]
}
...全文
131 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
忆水思寒 2018-11-08
  • 打赏
  • 举报
回复
版主,我又发现别人用object数组可以实现问题要求,连接在这里 https://ask.csdn.net/questions/709860
引用 4 楼 xuzuning 的回复:
用匿名对象是可以产生 json数组的,比如
            var a = new
            {
                button = new[]
               {
                 new { type = "click", name = "今日歌曲", key = "V1001_TODAY_MUSIC" },
                 new { type = "click", name = "今日歌曲", key = "V1001_TODAY_MUSIC" },
               }
            };
            var s = JsonConvert.SerializeObject(a, Newtonsoft.Json.Formatting.Indented);
            Console.WriteLine(s);
但是 C# 对数据类型是有严格要求的,你示例的 json 数组中的每个成员都不一样,所以无法用 C# 写出 只能用 js 或 php 来写。非要用 C# 的话,只能是字符串拼装
版主,我又发现别人用object数组可以实现问题要求,连接在这里 https://ask.csdn.net/questions/709860
忆水思寒 2018-11-06
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
用匿名对象是可以产生 json数组的,比如
            var a = new
            {
                button = new[]
               {
                 new { type = "click", name = "今日歌曲", key = "V1001_TODAY_MUSIC" },
                 new { type = "click", name = "今日歌曲", key = "V1001_TODAY_MUSIC" },
               }
            };
            var s = JsonConvert.SerializeObject(a, Newtonsoft.Json.Formatting.Indented);
            Console.WriteLine(s);
但是 C# 对数据类型是有严格要求的,你示例的 json 数组中的每个成员都不一样,所以无法用 C# 写出 只能用 js 或 php 来写。非要用 C# 的话,只能是字符串拼装
版主厉害,又学到新知识了,然后借用你的代码,自己写了个C#拼接板的贴到这里,供需要人参考
            var a = new
            {
                button = new[] { "value1", "value2" }
            };
            var name = new { name = "菜单" };
            var b = new
            {
                sub_button = new[] { "value1", "value2", "value3" }
            };

            var music = new
            {
                type = "click",
                name = "今日歌曲",
                key = "V1001_TODAY_MUSIC"
            };
            var search = new
            {
                type = "view",
                name = "搜索",
                url = "http://www.soso.com/"
            };
            var wxa = new
            {
                type = "miniprogram",
                name = "wxa",
                url = "http://mp.weixin.qq.com",
                appid = "wx286b93c14bbf93aa",
                pagepath = "pages/lunar/index"
            };
            var good = new
            {
                type = "click",
                name = "赞一下我们",
                key = "V1001_GOOD"
            };

            JavaScriptSerializer Jss = new JavaScriptSerializer();
            var _music = Jss.Serialize(music);
            var _search = Jss.Serialize(search);
            var _wxa = Jss.Serialize(wxa);
            var _good = Jss.Serialize(good);
            var _name = Jss.Serialize(name).Replace("{","").Replace("}","");

            var _a = JsonConvert.SerializeObject(a, Newtonsoft.Json.Formatting.Indented);
            var _b = JsonConvert.SerializeObject(b, Newtonsoft.Json.Formatting.Indented);

            string bb = _b.ToString().Replace("\"value1\"", _search).Replace("\"value2\"", _wxa).Replace("\"value3\"", _good);
            bb=bb.Insert(1,_name+",");
            string aa = _a.ToString().Replace("\"value1\"", _music).Replace("\"value2\"", bb);
            Console.WriteLine(aa);
xuzuning 2018-11-06
  • 打赏
  • 举报
回复
用匿名对象是可以产生 json数组的,比如
            var a = new
{
button = new[]
{
new { type = "click", name = "今日歌曲", key = "V1001_TODAY_MUSIC" },
new { type = "click", name = "今日歌曲", key = "V1001_TODAY_MUSIC" },
}
};
var s = JsonConvert.SerializeObject(a, Newtonsoft.Json.Formatting.Indented);
Console.WriteLine(s);

但是 C# 对数据类型是有严格要求的,你示例的 json 数组中的每个成员都不一样,所以无法用 C# 写出
只能用 js 或 php 来写。非要用 C# 的话,只能是字符串拼装
忆水思寒 2018-11-06
  • 打赏
  • 举报
回复
引用 1 楼 stherix 的回复:
那段js改成c#就是
 var date = new
            {
                button = new
                {
                    type = "click",
                    name = "今日歌曲",
                    key = "V1001_TODAY_MUSIC"
                }
            };
是不是发现很像? 子对象的var去掉即可
您说的对,手误打错了,就是想通过这样的匿名对象构造出下面的Jason字符串,button下面的第二个花括号,必须要有一个赋值,才能继续创建类似上面的匿名对象,但这样操作后和结果不一样了,还有标题 写错了 应该是 Jason 字符串
stherix 2018-11-06
  • 打赏
  • 举报
回复
至于json数组 是无法用匿名对象的
stherix 2018-11-06
  • 打赏
  • 举报
回复
那段js改成c#就是
 var date = new
            {
                button = new
                {
                    type = "click",
                    name = "今日歌曲",
                    key = "V1001_TODAY_MUSIC"
                }
            };
是不是发现很像? 子对象的var去掉即可
1. 简介 ................................................................................................................................................................... 1 1.1 Hello world ............................................................................................................................................... 1 1.2 程序结构 ..................................................................................................................................................... 2 1.3 类型和变量 ................................................................................................................................................. 3 1.4 表达式 ......................................................................................................................................................... 6 1.5 语句 ............................................................................................................................................................. 8 1.6 类和对象 ................................................................................................................................................... 12 1.6.1 成员 .................................................................................................................................................... 12 1.6.2 可访问性 ............................................................................................................................................ 13 1.6.3 类型形参 ............................................................................................................................................ 13 1.6.4 基类 .................................................................................................................................................... 14 1.6.5 字段 .................................................................................................................................................... 14 1.6.6 方法 .................................................................................................................................................... 15 1.6.6.1 参数 .............................................................................................................................................. 15 1.6.6.2 方法体和局部变量 ....................................................................................................................... 16 1.6.6.3 静态方法和实例方法 ................................................................................................................... 16 1.6.6.4 虚方法、重写方法和抽象方法 ................................................................................................... 17 1.6.6.5 方法重载 ...................................................................................................................................... 19 1.6.7 其他函数成员 .................................................................................................................................... 20 1.6.7.1 构造函数 ...................................................................................................................................... 21 1.6.7.2 属性 .............................................................................................................................................. 22 1.6.7.3 索引器 .......................................................................................................................................... 22 1.6.7.4 事件 .............................................................................................................................................. 22 1.6.7.5 运算符 .......................................................................................................................................... 23 1.6.7.6 析构函数 ...................................................................................................................................... 23 1.7 结构 ........................................................................................................................................................... 24 1.8 数组 ........................................................................................................................................................... 24 1.9 接口 ........................................................................................................................................................... 25 1.10 枚举 ......................................................................................................................................................... 26 1.11 委托 ......................................................................................................................................................... 27 1.12 属性 ......................................................................................................................................................... 28 2. 词法结构 ......................................................................................................................................................... 31 2.1 程序 ........................................................................................................................................................... 31 2.2 文法 ........................................................................................................................................................... 31 2.2.1 文法表示法 ........................................................................................................................................ 31 2.2.2 词法文法 ............................................................................................................................................ 32 2.2.3 句法文法 ............................................................................................................................................ 32 2.3 词法分析 ................................................................................................................................................... 32 2.3.1 行结束符 ............................................................................................................................................ 33 2.3.2 注释 .................................................................................................................................................... 33 2.3.3 空白 .................................................................................................................................................... 34 2.4 标记 ........................................................................................................................................................... 34 iv C#语言规范 2.4.1 Unicode 字符转义序列 ....................................................................................................................... 35 2.4.2 标识符 ................................................................................................................................................ 35 2.4.3 关键字 ................................................................................................................................................ 37 2.4.4 文本 .................................................................................................................................................... 37 2.4.4.1 布尔值 .......................................................................................................................................... 37 2.4.4.2 整数 .............................................................................................................................................. 38 2.4.4.3 实数 .............................................................................................................................................. 39 2.4.4.4 字符 .............................................................................................................................................. 39 2.4.4.5 字符串 .......................................................................................................................................... 40 2.4.4.6 null 文本 .................................................................................................................................... 42 2.4.5 运算符和标点符号 ............................................................................................................................. 42 2.5 预处理指令 ............................................................................................................................................... 42 2.5.1 条件编译符号 .................................................................................................................................... 43 2.5.2 预处理表达式 .................................................................................................................................... 43 2.5.3 声明指令 ............................................................................................................................................ 44 2.5.4 条件编译指令 .................................................................................................................................... 45 2.5.5 诊断指令 ............................................................................................................................................ 47 2.5.6 区域指令 ............................................................................................................................................ 47 2.5.7 行指令 ................................................................................................................................................ 48 2.5.8 Pragma 指令 ....................................................................................................................................... 48 2.5.8.1 Pragma warning ........................................................................................................................... 49 3. 基本概念 ......................................................................................................................................................... 50 3.1 应用程序启动 ........................................................................................................................................... 50 3.2 应用程序终止 ........................................................................................................................................... 50 3.3 声明 ........................................................................................................................................................... 51 3.4 成员 ........................................................................................................................................................... 53 3.4.1 命名空间成员 .................................................................................................................................... 53 3.4.2 结构成员 ............................................................................................................................................ 53 3.4.3 枚举成员 ............................................................................................................................................ 53 3.4.4 类成员 ................................................................................................................................................ 53 3.4.5 接口成员 ............................................................................................................................................ 54 3.4.6 数组成员 ............................................................................................................................................ 54 3.4.7 委托成员 ............................................................................................................................................ 54 3.5 成员访问 ................................................................................................................................................... 54 3.5.1 已声明可访问性 ................................................................................................................................ 54 3.5.2 可访问域 ............................................................................................................................................ 55 3.5.3 实例成员的受保护访问...................................................................................................................... 57 3.5.4 可访问性约束 .................................................................................................................................... 58 3.6 签名和重载 ............................................................................................................................................... 59 3.7 范围 ........................................................................................................................................................... 60 3.7.1 名称隐藏 ............................................................................................................................................ 62 3.7.1.1 通过嵌套隐藏 ............................................................................................................................... 62 3.7.1.2 通过继承隐藏 ............................................................................................................................... 63 3.8 命名空间和类型名称 ............................................................................................................................... 64 目录 版权所有  Microsoft Corporation 1999-2007。保留所有权利。 3.8.1 完全限定名 ........................................................................................................................................ 66 3.9 自动内存管理 ........................................................................................................................................... 66 3.10 执行顺序 ................................................................................................................................................. 69 4. 类型 ................................................................................................................................................................. 71 4.1 值类型 ....................................................................................................................................................... 71 4.1.1 System.ValueType 类型 ...................................................................................................................... 72 4.1.2 默认构造函数 .................................................................................................................................... 72 4.1.3 结构类型 ............................................................................................................................................ 73 4.1.4 简单类型 ............................................................................................................................................ 73 4.1.5 整型 .................................................................................................................................................... 74 4.1.6 浮点型 ................................................................................................................................................ 75 4.1.7 decimal 类型 ....................................................................................................................................... 76 4.1.8 bool 类型 ............................................................................................................................................ 76 4.1.9 枚举类型 ............................................................................................................................................ 76 4.1.10 可以为 null 的类型........................................................................................................................ 76 4.2 引用类型 ................................................................................................................................................... 77 4.2.1 类类型 ................................................................................................................................................ 78 4.2.2 对象类型 ............................................................................................................................................ 78 4.2.3 string 类型 .......................................................................................................................................... 78 4.2.4 接口类型 ............................................................................................................................................ 78 4.2.5 数组类型 ............................................................................................................................................ 78 4.2.6 委托类型 ............................................................................................................................................ 78 4.3 装箱和拆箱 ............................................................................................................................................... 79 4.3.1 装箱转换 ............................................................................................................................................ 79 4.3.2 拆箱转换 ............................................................................................................................................ 80 4.4 构造类型 ................................................................................................................................................... 81 4.4.1 类型实参 ............................................................................................................................................ 81 4.4.2 开放和封闭类型 ................................................................................................................................ 82 4.4.3 绑定和未绑定类型 ............................................................................................................................. 82 4.4.4 满足约束 ............................................................................................................................................ 82 4.5 类型形参 ................................................................................................................................................... 83 4.6 表达式目录树类型 ................................................................................................................................... 84 5. 变量 ................................................................................................................................................................. 85 5.1 变量类别 ................................................................................................................................................... 85 5.1.1 静态变量 ............................................................................................................................................ 85 5.1.2 实例变量 ............................................................................................................................................ 85 5.1.2.1 类中的实例变量 ........................................................................................................................... 85 5.1.2.2 结构中的实例变量 ....................................................................................................................... 85 5.1.3 数组元素 ............................................................................................................................................ 86 5.1.4 值参数 ................................................................................................................................................ 86 5.1.5 引用形参 ............................................................................................................................................ 86 5.1.6 输出形参 ............................................................................................................................................ 86 5.1.7 局部变量 ............................................................................................................................................ 86 5.2 默认值 ....................................................................................................................................................... 87 vi C#语言规范 5.3 明确赋值 ................................................................................................................................................... 87 5.3.1 初始已赋值变量 ................................................................................................................................ 88 5.3.2 初始未赋值变量 ................................................................................................................................ 88 5.3.3 确定明确赋值的细则 ......................................................................................................................... 88 5.3.3.1 一般语句规则 ............................................................................................................................... 89 5.3.3.2 块语句、checked 和 unchecked 语句 ..................................................................................... 89 5.3.3.3 表达式语句 .................................................................................................................................. 89 5.3.3.4 声明语句 ...................................................................................................................................... 90 5.3.3.5 if 语句 .......................................................................................................................................... 90 5.3.3.6 switch 语句 .................................................................................................................................. 90 5.3.3.7 while 语句 .................................................................................................................................... 90 5.3.3.8 do 语句 ......................................................................................................................................... 90 5.3.3.9 for 语句 ........................................................................................................................................ 91 5.3.3.10 break、continue 和 goto 语句 ............................................................................................. 91 5.3.3.11 throw 语句 ................................................................................................................................. 91 5.3.3.12 return 语句 ................................................................................................................................. 91 5.3.3.13 try-catch 语句 .............................................................................................................................. 92 5.3.3.14 try-finally 语句 ............................................................................................................................ 92 5.3.3.15 try-catch-finally 语句 .................................................................................................................. 92 5.3.3.16 foreach 语句 ............................................................................................................................... 93 5.3.3.17 using 语句 .................................................................................................................................. 93 5.3.3.18 lock 语句 .................................................................................................................................... 93 5.3.3.19 yield 语句 ................................................................................................................................... 94 5.3.3.20 简单表达式的一般规则 ............................................................................................................. 94 5.3.3.21 带有嵌入表达式的表达式的一般规则 ..................................................................................... 94 5.3.3.22 调用表达式和对象创建表达式 ................................................................................................. 94 5.3.3.23 简单赋值表达式 ......................................................................................................................... 95 5.3.3.24 && 表达式 ................................................................................................................................. 95 5.3.3.25 || 表达式 ..................................................................................................................................... 96 5.3.3.26 ! 表达式 ..................................................................................................................................... 96 5.3.3.27 ?? 表达式 ................................................................................................................................... 97 5.3.3.28 ?: 表达式 .................................................................................................................................... 97 5.3.3.29 匿名函数 .................................................................................................................................... 97 5.4 变量引用 ................................................................................................................................................... 98 5.5 变量引用的原子性 ................................................................................................................................... 98 6. 转换 ................................................................................................................................................................. 99 6.1 隐式转换 ................................................................................................................................................... 99 6.1.1 标识转换 ............................................................................................................................................ 99 6.1.2 隐式数值转换 .................................................................................................................................... 99 6.1.3 隐式枚举转换 .................................................................................................................................. 100 6.1.4 可以为 null 的隐式转换 ................................................................................................................. 100 6.1.5 null 文本转换 ................................................................................................................................... 100 6.1.6 隐式引用转换 .................................................................................................................................. 100 6.1.7 装箱转换 .......................................................................................................................................... 101 目录 版权所有  Microsoft Corporation 1999-2007。保留所有权利。 6.1.8 隐式常量表达式转换 ....................................................................................................................... 101 6.1.9 涉及类型形参的隐式转换................................................................................................................ 101 6.1.10 用户定义的隐式转换...................................................................................................................... 102 6.1.11 匿名函数转换和方法组转换 .......................................................................................................... 102 6.2 显式转换 ................................................................................................................................................. 102 6.2.1 显式数值转换 .................................................................................................................................. 102 6.2.2 显式枚举转换 .................................................................................................................................. 104 6.2.3 可以为 null 的显式转换................................................................................................................ 104 6.2.4 显式引用转换 .................................................................................................................................. 105 6.2.5 拆箱转换 .......................................................................................................................................... 105 6.2.6 涉及类型形参的显式转换................................................................................................................ 105 6.2.7 用户定义的显式转换 ....................................................................................................................... 106 6.3 标准转换 ................................................................................................................................................. 106 6.3.1 标准隐式转换 .................................................................................................................................. 106 6.3.2 标准显式转换 .................................................................................................................................. 107 6.4 用户定义的转换 ..................................................................................................................................... 107 6.4.1 允许的用户定义转换 ....................................................................................................................... 107 6.4.2 提升转换运算符 ............................................................................................................................... 107 6.4.3 用户定义转换的计算 ....................................................................................................................... 107 6.4.4 用户定义的隐式转换 ....................................................................................................................... 108 6.4.5 用户定义的显式转换 ....................................................................................................................... 109 6.5 匿名函数转换 ......................................................................................................................................... 110 6.5.1 匿名函数转换为委托类型的计算 .................................................................................................... 111 6.5.2 匿名函数转换为表达式目录树类型的计算 .................................................................................... 111 6.5.3 实现示例 .......................................................................................................................................... 111 6.6 方法组转换 ............................................................................................................................................. 114 7. 表达式 ........................................................................................................................................................... 116 7.1 表达式的分类 ......................................................................................................................................... 116 7.1.1 表达式的值 ...................................................................................................................................... 117 7.2 通过调用索引器的 get-accessor 来获取索引器访问表达式的值。 .............................................. 117 7.3 运算符 ..................................................................................................................................................... 117 7.3.1 运算符的优先级和顺序关联性 ........................................................................................................ 117 7.3.2 运算符重载 ...................................................................................................................................... 118 7.3.3 一元运算符重载决策 ....................................................................................................................... 119 7.3.4 二元运算符重载决策 ....................................................................................................................... 119 7.3.5 候选用户定义运算符 ....................................................................................................................... 120 7.3.6 数值提升 .......................................................................................................................................... 120 7.3.6.1 一元数值提升 ............................................................................................................................. 120 7.3.6.2 二元数值提升 ............................................................................................................................. 121 7.3.7 提升运算符 ...................................................................................................................................... 121 7.4 成员查找 ................................................................................................................................................. 122 7.4.1 基类型 .............................................................................................................................................. 123 7.5 函数成员 ................................................................................................................................................. 123 7.5.1 实参列表 .......................................................................................................................................... 125 viii C#语言规范 7.5.2 类型推断 .......................................................................................................................................... 127 7.5.2.1 第一阶段 .................................................................................................................................... 128 7.5.2.2 第二阶段 .................................................................................................................................... 128 7.5.2.3 输入类型 .................................................................................................................................... 129 7.5.2.4 输出类型 .................................................................................................................................... 129 7.5.2.5 依赖 ............................................................................................................................................ 129 7.5.2.6 输出类型推断 ............................................................................................................................. 129 7.5.2.7 参数类型显式推断 ..................................................................................................................... 129 7.5.2.8 精确推断 .................................................................................................................................... 129 7.5.2.9 下限推断 .................................................................................................................................... 129 7.5.2.10 固定 .......................................................................................................................................... 130 7.5.2.11 推断返回类型 ........................................................................................................................... 130 7.5.2.12 方法组转换的类型推断 ........................................................................................................... 131 7.5.2.13 查找一组表达式的最通用类型 ............................................................................................... 131 7.5.3 重载决策 .......................................................................................................................................... 131 7.5.3.1 适用函数成员 ............................................................................................................................. 132 7.5.3.2 更好的函数成员 ......................................................................................................................... 132 7.5.3.3 表达式的更佳转换 ..................................................................................................................... 133 7.5.3.4 类型的更佳转换 ......................................................................................................................... 134 7.5.3.5 泛型类中的重载 ......................................................................................................................... 134 7.5.4 函数成员调用 .................................................................................................................................. 135 7.5.4.1 已装箱实例上的调用 ................................................................................................................. 136 7.6 基本表达式 ............................................................................................................................................. 136 7.6.1 文本 .................................................................................................................................................. 137 7.6.2 简单名称 .......................................................................................................................................... 137 7.6.2.1 块中的固定含义 ......................................................................................................................... 138 7.6.3 带括号的表达式 ............................................................................................................................... 139 7.6.4 成员访问 .......................................................................................................................................... 139 7.6.4.1 相同的简单名称和类型名称 ..................................................................................................... 141 7.6.4.2 语法多义性 ................................................................................................................................ 141 7.6.5 调用表达式 ...................................................................................................................................... 142 7.6.5.1 方法调用 .................................................................................................................................... 142 7.6.5.2 扩展方法调用 ............................................................................................................................. 143 7.6.5.3 委托调用 .................................................................................................................................... 146 7.6.6 元素访问 .......................................................................................................................................... 146 7.6.6.1 数组访问 .................................................................................................................................... 146 7.6.6.2 索引器访问 ................................................................................................................................ 147 7.6.7 this 访问 ........................................................................................................................................ 147 7.6.8 base 访问 ........................................................................................................................................ 148 7.6.9 后缀增量和后缀减量运算符............................................................................................................ 148 7.6.10 new 运算符 ..................................................................................................................................... 149 7.6.10.1 对象创建表达式 ....................................................................................................................... 149 7.6.10.2 对象初始值设定项 ................................................................................................................... 150 7.6.10.3 集合初始值设定项 ................................................................................................................... 152 7.6.10.4 数组创建表达式 ....................................................................................................................... 153 目录 版权所有  Microsoft Corporation 1999-2007。保留所有权利。 7.6.10.5 委托创建表达式 ....................................................................................................................... 155 7.6.10.6 匿名对象创建表达式 ............................................................................................................... 156 7.6.11 typeof 运算符 ................................................................................................................................. 157 7.6.12 checked 和 unchecked 运算符 .................................................................................................... 159 7.6.13 默认值表达式 ................................................................................................................................ 161 7.6.14 匿名方法表达式 ............................................................................................................................. 161 7.7 一元运算符 ............................................................................................................................................. 162 7.7.1 一元加运算符 .................................................................................................................................. 162 7.7.2 一元减运算符 .................................................................................................................................. 162 7.7.3 逻辑否定运算符 ............................................................................................................................... 163 7.7.4 按位求补运算符 ............................................................................................................................... 163 7.7.5 前缀增量和减量运算符.................................................................................................................... 163 7.7.6 强制转换表达式 ............................................................................................................................... 164 7.8 算术运算符 ............................................................................................................................................. 164 7.8.1 乘法运算符 ...................................................................................................................................... 165 7.8.2 除法运算符 ...................................................................................................................................... 165 7.8.3 余数运算符 ...................................................................................................................................... 166 7.8.4 加法运算符 ...................................................................................................................................... 167 7.8.5 减法运算符 ...................................................................................................................................... 169 7.9 移位运算符 ............................................................................................................................................. 170 7.10 关系和类型测试运算符 ........................................................................................................................ 171 7.10.1 整数比较运算符 ............................................................................................................................. 172 7.10.2 浮点比较运算符 ............................................................................................................................. 173 7.10.3 小数比较运算符 ............................................................................................................................. 173 7.10.4 布尔相等运算符 ............................................................................................................................. 173 7.10.5 枚举比较运算符 ............................................................................................................................. 174 7.10.6 引用类型相等运算符...................................................................................................................... 174 7.10.7 字符串相等运算符.......................................................................................................................... 175 7.10.8 委托相等运算符 ............................................................................................................................. 176 7.10.9 相等运算符和 null........................................................................................................................ 176 7.10.10 is 运算符 ....................................................................................................................................... 176 7.10.11 as 运算符 ...................................................................................................................................... 177 7.11 逻辑运算符 ........................................................................................................................................... 178 7.11.1 整数逻辑运算符 ............................................................................................................................. 178 7.11.2 & 运算符 ........................................................................................................................................ 178 7.11.3 枚举逻辑运算符 ............................................................................................................................. 178 7.11.4 布尔逻辑运算符 ............................................................................................................................. 178 7.11.5 可以为 null 的布尔逻辑运算符 .................................................................................................. 179 7.12 条件逻辑运算符 ................................................................................................................................... 179 7.12.1 布尔条件逻辑运算符...................................................................................................................... 180 7.12.2 用户定义的条件逻辑运算符 .......................................................................................................... 180 7.13 空合并运算符 ....................................................................................................................................... 180 7.14 条件运算符 ........................................................................................................................................... 181 7.15 匿名函数表达式 ................................................................................................................................... 182 7.15.1 匿名函数签名 ................................................................................................................................ 183 x C#语言规范 7.15.2 匿名函数体 .................................................................................................................................... 183 7.15.3 重载决策 ........................................................................................................................................ 184 7.15.4 外层变量 ........................................................................................................................................ 185 7.15.4.1 捕获的外层变量 ....................................................................................................................... 185 7.15.4.2 局部变量实例化 ....................................................................................................................... 186 7.15.5 匿名函数表达式的计算 .................................................................................................................. 188 7.16 查询表达式 ........................................................................................................................................... 188 7.16.1 查询表达式中的多义性 .................................................................................................................. 189 7.16.2 查询表达式转换 ............................................................................................................................. 189 7.16.2.1 带有延续部分的 Select 和 groupby 子句 ............................................................................ 190 7.16.2.2 显式范围变量类型 ................................................................................................................... 190 7.16.2.3 简并查询表达式 ....................................................................................................................... 191 7.16.2.4 From、let、where、join 和 orderby 子句 ............................................................................. 191 7.16.2.5 Select 子句 ............................................................................................................................... 194 7.16.2.6 Groupby 子句 ............................................................................................................................ 195 7.16.2.7 透明标识符 ............................................................................................................................... 195 7.16.3 查询表达式模式 ............................................................................................................................. 196 7.17 赋值运算符 ........................................................................................................................................... 197 7.17.1 简单赋值 ........................................................................................................................................ 198 7.17.2 复合赋值 ........................................................................................................................................ 200 7.17.3 事件赋值 ........................................................................................................................................ 201 7.18 表达式 ................................................................................................................................................... 201 7.19 常量表达式 ........................................................................................................................................... 201 7.20 布尔表达式 ........................................................................................................................................... 202 8. 语句 ............................................................................................................................................................... 204 8.1 结束点和可到达性 ................................................................................................................................. 204 8.2 块 ............................................................................................................................................................. 205 8.2.1 语句列表 .......................................................................................................................................... 206 8.3 空语句 ..................................................................................................................................................... 206 8.4 标记语句 ................................................................................................................................................. 207 8.5 声明语句 ................................................................................................................................................. 207 8.5.1 局部变量声明 .................................................................................................................................. 207 8.5.2 局部常量声明 .................................................................................................................................. 209 8.6 表达式语句 ............................................................................................................................................. 209 8.7 选择语句 ................................................................................................................................................. 209 8.7.1 if 语句 ............................................................................................................................................... 210 8.7.2 switch 语句 ....................................................................................................................................... 210 8.8 迭代语句 ................................................................................................................................................. 213 8.8.1 while 语句 ......................................................................................................................................... 213 8.8.2 do 语句 ............................................................................................................................................. 214 8.8.3 for 语句 ............................................................................................................................................. 214 8.8.4 foreach 语句 ..................................................................................................................................... 215 8.9 跳转语句 ................................................................................................................................................. 218 8.9.1 break 语句 ......................................................................................................................................... 218 目录 版权所有  Microsoft Corporation 1999-2007。保留所有权利。 8.9.2 continue 语句 .................................................................................................................................... 219 8.9.3 goto 语句 .......................................................................................................................................... 219 8.9.4 return 语句 ........................................................................................................................................ 220 8.9.5 throw 语句 ........................................................................................................................................ 221 8.10 try 语句 .................................................................................................................................................. 221 8.11 checked 语句和 unchecked 语句 ............................................................................................... 224 8.12 lock 语句 ............................................................................................................................................... 224 8.13 using 语句 ............................................................................................................................................. 225 8.14 yield 语句 .............................................................................................................................................. 226 9. 命名空间 ....................................................................................................................................................... 229 9.1 编译单元 ................................................................................................................................................. 229 9.2 命名空间声明 ......................................................................................................................................... 229 9.3 Extern 别名 ............................................................................................................................................. 230 9.4 using 指令 ............................................................................................................................................... 231 9.4.1 using 别名指令 ................................................................................................................................. 231 9.4.2 Using 命名空间指令 ......................................................................................................................... 234 9.5 命名空间成员 ......................................................................................................................................... 235 9.6 类型声明 ................................................................................................................................................. 236 9.7 命名空间别名限定符 .............................................................................................................................. 236 9.7.1 别名的唯一性 .................................................................................................................................. 237 10. 类 ................................................................................................................................................................. 239 10.1 类声明 ................................................................................................................................................... 239 10.1.1 类修饰符 ........................................................................................................................................ 239 10.1.1.1 抽象类 ...................................................................................................................................... 239 10.1.1.2 密封类 ...................................................................................................................................... 240 10.1.1.3 静态类 ...................................................................................................................................... 240 10.1.2 分部修饰符 .................................................................................................................................... 241 10.1.3 类型形参 ........................................................................................................................................ 241 10.1.4 类基本规范 .................................................................................................................................... 241 10.1.4.1 基类 .......................................................................................................................................... 242 10.1.4.2 接口实现 .................................................................................................................................. 243 10.1.5 类型形参约束 ................................................................................................................................ 243 10.1.6 类体 ................................................................................................................................................ 246 10.2 分部类型 ............................................................................................................................................... 247 10.2.1 属性 ................................................................................................................................................ 247 10.2.2 修饰符 ............................................................................................................................................ 247 10.2.3 类型形参和约束 ............................................................................................................................. 247 10.2.4 基类 ................................................................................................................................................ 248 10.2.5 基接口 ............................................................................................................................................ 248 10.2.6 成员 ................................................................................................................................................ 249 10.2.7 分部方法 ........................................................................................................................................ 249 10.2.8 名称绑定 ........................................................................................................................................ 251 10.3 类成员 ................................................................................................................................................... 252 10.3.1 实例类型 ........................................................................................................................................ 253 xii C#语言规范 10.3.2 构造类型的成员 ............................................................................................................................. 253 10.3.3 继承 ................................................................................................................................................ 254 10.3.4 new 修饰符 ..................................................................................................................................... 255 10.3.5 访问修饰符 .................................................................................................................................... 255 10.3.6 构成类型 ........................................................................................................................................ 255 10.3.7 静态成员和实例成员...................................................................................................................... 255 10.3.8 嵌套类型 ........................................................................................................................................ 256 10.3.8.1 完全限定名 ............................................................................................................................... 256 10.3.8.2 已声明可访问性 ............................................................................................................

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧