GO To Definition的背后操作【VS2015 C#】
生活随笔
收集整理的這篇文章主要介紹了
GO To Definition的背后操作【VS2015 C#】
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
GO To Definition的背后操作【VS2015 C#】
使用VS開發(fā)U3D項目時,去察看某個變量的聲明,比如某組件的gameObject變量,會看到如下代碼
一看似乎有點暈,這代碼什么意思啊,就一個 public GameObject gameObject {get;}
這有點像屬性的簡潔聲明:
但事實是這樣的嗎??經(jīng)過測試,并非如此
寫一個小程序來驗證下就知道了。
首先寫一個DLL程序,然后寫一個測試程序來引用這個DLL,在測試程序中對變量使用go to definition,我們看到,不論dll中定義的屬性有多么復(fù)雜,go to definition總是只能看到簡單的 set; get;
DLL程序代碼如下:
public class IMsg{public virtual void Print() { }}sealed public class xMsg : IMsg{string msg;public string Msg{set{if(msg.Length == 0){msg = "init string";}else{msg = value;}}get{return msg;}}public sealed override void Print(){Console.WriteLine(msg);}引用DLL的測試程序代碼如下:
class Program{static void Main(string[] args){xMsg ox = new xMsg();ox.Msg = "hello";ox.Print();}}對 xMsg使用 go to definition?我們看到如下代碼:
namespace ClassLibrary1 {public sealed class xMsg : IMsg{public xMsg();public string Msg { get; set; }public sealed override void Print();} }?我們?nèi)L試打開這個文件所在的位置時得到如下,原來是VS生成的臨時文件。
這說明了這種文件只是VS給我們預(yù)覽代碼定義用的臨時生成文件,并不是可執(zhí)源碼,這樣的文件在項目中是不能正常執(zhí)行的,因為它與我們的程序原文件已經(jīng)相差太多。
posted on 2016-10-03 22:42 時空觀察者9號 閱讀(...) 評論(...) 編輯 收藏
總結(jié)
以上是生活随笔為你收集整理的GO To Definition的背后操作【VS2015 C#】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TortoiseGIT安装过程及问题
- 下一篇: C#属性: 利用set实现递归