代码拉取完成,页面将自动刷新
using System;
using System.Collections.Generic;
//4.11.8 动态表达式
//域、属性、方法、事件、构造函数、索引器、运算符和转换都是可以实现动态调用的。
//不允许尝试获取返回类型为void的动态表达式的结果的操作,这与具有静态类型的表达式相似。两者的区别在于错误发生在运行时:
namespace _134_动态绑定_动态表达式
{
class Program
{
static void Main(string[] args)
{
dynamic list = new List<int>();
var result = list.Add(5); // 抛出RuntimeBinderException。
//包含动态操作数的表达式一般情况下本身就是动态的,因为缺少类型信息的结果是向下传递:
dynamic x = 2;
var y = x * 3; // y的静态类型是动态的
//这个规则有一些例外情况。首先,将一个动态表达式转换为静态类型会产生一个静态表达式:
/*
dynamic x = 2;
var y = (int)2; // y的静态类型是int
*/
//其次,构造函数调用总是产生静态的表达式,即使调用时使用的是动态参数。在这个例子中,x被设置为静态类型StringBuilder:
/*
dynamic capacity = 10;
var x = new System.Text.StringBuilder(capacity);
*/
//此外,在少数情况下,包含动态参数的表达式也是静态的,包括传递索引到数组和委托创建表达式。
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。