dynamic关键字是编译器不检查类型

dynamic关键字是排除编译器检查类型,运行的时候才会被检查。

调用反射Dll种的方法可以使用dynamic

using Ruanmou.DB.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ruanmou.DB.MySql
{
    public class MySqlHelper : IDBHelper
    {
        public MySqlHelper()
        {
            Console.WriteLine("{0}被构造", this.GetType().Name);
        }

        public void Query()
        {
            Console.WriteLine("{0}.Query", this.GetType().Name);
        }
    }
}
dynamic 的使用
Assembly assembly = Assembly.Load("Ruanmou.DB.MySql");//1 动态加载
Type type = assembly.GetType("Ruanmou.DB.MySql.MySqlHelper");//2 获取类型 完整类型名称
dynamic dDBHelper= Activator.CreateInstance(type);
dDBHelper.Query();//dynamic编译器不检查,,运行时才检查

原文地址:https://www.cnblogs.com/tangjiaoshu/p/10193265.html

时间: 2024-10-09 19:44:24

dynamic关键字是编译器不检查类型的相关文章

谈谈dynamic关键字

谈谈dynamic关键字 前言 今天和谈了两年的女朋友分手了,一开始我还觉得是因为这次的吵架,因为我今天一天没联系她,她就生气了,说了分手,我是说一开始我以为是这样.然后我想了想,矛盾就像不停的在往一个瓶子里到硫酸,有可能因为这一滴的缘故导致瓶子里的硫酸溢出来了,有了矛盾就要解决了,珍惜眼前人. 正文 废话说了一大堆,说点正经的,C#4.0提供了一个关键字dynamic,我在以前的时候说过这个关键字.今天来看看dynamic到底是什么.它是怎么工作的呢? 先来看一个简单的案例: static v

C#中Dynamic关键字

dynamic关键字和动态语言运行时(DLR)是.Net 4.0中新增的功能. 什么是"动态"? 编程语言有时可以划分为静态类型化语言和动态类型化语言.C#和Java经常被认为是静态化类型的语言,而Python.Ruby和JavaScript是动态类型语言. 一般而言,动态语言在编译时不会对类型进行检查,而是在运行时识别对象的类型.这种方法有利有弊:代码编写起来更快.更容易,但无法获取编译器错误,只能通过单元测试和其他方法来确保应用正常运行. C#最初是作为纯静态语言创建的,但是C#4

C# 动态语言特性,dynamic 关键字研究

原文:C# 动态语言特性,dynamic 关键字研究 1       动态语言简介 支持动态特性的语言现在大行其道,并且有继续增长的趋势.比如 Ruby 和 Python, 还有天王级的巨星 --- JavaScript. 现在一个程序员说自己对 JavaScript 根本没使用过,别人一定把你当成从火星回来的吧! 很多使用过 JavaScript 的程序员,刚开始对其动态特性深恶痛绝,欲除之而后快,但是一旦熟悉这个语言以后,又会发疯般的爱上她(我的野蛮女友). 以创建一个“人”为例, Java

swift dynamic关键字

dynamic Apply this modifier to any member of a class that can be represented by Objective-C. When you mark a member declaration with the dynamic modifier, access to that member is always dynamically dispatched using the Objective-C runtime. Access to

gcc编译器与基本类型3

C语言发展史 1969年贝尔实验室 肯尼斯·蓝·汤普逊,丹尼斯·李奇开发了B语言 ->Unix,New B语言,改名C语言83年提出C语言标准 1989年十二月正式通过C语言标准,C89标准 C primegraimer 94年提出C语言标准 1999年 C99标准通过 C语言的特点: 优点:高效.可移植,功能强大.灵活 缺点:C语言的错误容易隐藏.(段错误) C语言很难理解1.gcc编译器2.注释3.变量4.标示符5.c语言的基本数据类型6.进制转换 1.gcc编译器 gcc编译命令 GNU编

《C++ Primer》学习 之 编译器推断auto类型

/* <C++ Primer>学习 之 编译器推断auto类型 书P61-P62 重点在于程序中的注释,方便以后复习. */ 1 #include <iostream> 2 #include <cmath> 3 #include <string> 4 using namespace std; 5 6 int main() 7 { 8 int i = 0, &r = i; 9 auto a = r; // a : int 10 11 const int

多态 这是动态语言和静态语言(例如Java)最大的差别之一。动态语言调用实例方法,不检查类型,只要方法存在,参数正确,就可以调用。

多态 类具有继承关系,并且子类类型可以向上转型看做父类类型,如果我们从 Person 派生出 Student和Teacher ,并都写了一个 whoAmI() 方法: class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender def whoAmI(self): return 'I am a Person, my name is %s' % self.name clas

Python——多态、检查类型

一.多态 Python变量并不需要声明类型,同一个变量可以在不同的时间引用不同的对象,当一个变量在调用同一个方法,可以呈现出多种行为,而具体呈现出哪种行为由该变量引用的对象来决定,这就是多态. 先看一下以下例子: class Dog: def behavior(self,skill): print ('小狗会%s!'%skill) class Cat: def behavior(self,skill): print ('小猫会%s!'%skill) class Host: def pet(sel

【转】volatile关键字。编译器不优化,多线程会改。防止随时变动的

来自:http://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777432.html 1. 为什么用volatile? C/C++ 中的 volatile 关键字和 const 对应,用来修饰变量,通常用于建立语言级别的 memory barrier.这是 BS 在 "The C++ Programming Language" 对 volatile 修饰词的说明: A volatile specifier is a hint to