初期绑定
初期绑定也称静态绑定,是指编译时绑定;初期绑定对象基本上是强范例对象或静态范例对象。【教程引荐:C#视频教程】
初期绑定在编译时期辨认并搜检要领、属性、函数,并在应用程序实行之前实行其他优化。在这个绑定中,编译器已晓得它是什么范例的对象以及它具有的要领或属性。
初期绑定的长处
1、机能很快
2、易于编码、开辟
3、减少了运行时毛病的数目
示例:
using System; class People { // data members public string name; public string subject; // public method public void details(string name, string subject) { this.name = name; this.subject = subject; Console.WriteLine("我的名字是: " + name); Console.WriteLine("我最喜欢的科目是: " + subject); } } class GFG { // Main 要领 static void Main(string[] args) { // 建立People类的对象 People g = new People(); // 挪用People类的要领 g.details("Ankita", "C#"); // 挪用“myMethod()”时失足 // 由于这个要领不属于People类,或许编译器在编译时不晓得mymethod() g.mymethod(); } }
编译时发作毛病:
申明:在上面的示例中,我们有一个名为People的类。该类包括details()要领。这里,编译器已晓得People中存在的属性和要领。然则当我们尝试挪用mymethod()时,它会抛出一个毛病,由于编译器不晓得这个要领。
后期绑定
后期绑定也称动态绑定。在后期绑定中,编译器不晓得它是什么范例的对象以及它具有的要领或属性,这里的对象是动态对象。对象的范例是依据它在运行时在右边保留的数据来肯定的。基本上,是经由历程运用假造要领来完成后期绑定。
后期绑定的最大长处是这类范例的对象能够保留对任何对象的援用,但缺乏初期绑定对象的很多长处。比方:后期绑定的机能比初期绑定慢,由于它须要在运行时举行查找。
示例:
using System; class GFG { static void Main() { // Dynamic objects dynamic obj = 4; dynamic obj1 = 5.678; // 显现对象的范例 Console.WriteLine("对象范例为:"); // 运用getType()要领来猎取范例 Console.WriteLine(obj.GetType()); Console.WriteLine(obj1.GetType()); } }
输出:
申明:
在上面的示例中,obj保留整数范例数据,obj1保留双范例数据。然则编译器不会在编译时处理这些题目。在运行时,这些动态对象分别被检测并转换为System.Int32和System.Double。这就是为何运行时剖析历程被称为后期绑定的缘由。
以上就是本篇文章的全部内容,愿望能对人人的进修有所协助。更多精彩内容人人能够关注ki4网相干教程栏目!!!
以上就是浅谈C#中的初期绑定和后期绑定的细致内容,更多请关注ki4网别的相干文章!