日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

GO To Definition的背后操作【VS2015 C#】

發布時間:2025/3/18 C# 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GO To Definition的背后操作【VS2015 C#】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

GO To Definition的背后操作【VS2015 C#】

使用VS開發U3D項目時,去察看某個變量的聲明,比如某組件的gameObject變量,會看到如下代碼

一看似乎有點暈,這代碼什么意思啊,就一個 public GameObject gameObject {get;}

這有點像屬性的簡潔聲明:

但事實是這樣的嗎??經過測試,并非如此

寫一個小程序來驗證下就知道了。

首先寫一個DLL程序,然后寫一個測試程序來引用這個DLL,在測試程序中對變量使用go to definition,我們看到,不論dll中定義的屬性有多么復雜,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();} }

?我們去嘗試打開這個文件所在的位置時得到如下,原來是VS生成的臨時文件。

這說明了這種文件只是VS給我們預覽代碼定義用的臨時生成文件,并不是可執源碼,這樣的文件在項目中是不能正常執行的,因為它與我們的程序原文件已經相差太多。

posted on 2016-10-03 22:42 時空觀察者9號 閱讀(...) 評論(...) 編輯 收藏

總結

以上是生活随笔為你收集整理的GO To Definition的背后操作【VS2015 C#】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。