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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

INotifyPropertyChanged 接口 CallerMemberName属性

發布時間:2025/7/14 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 INotifyPropertyChanged 接口 CallerMemberName属性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

調用方信息

使用調用方信息屬性,可以獲取關于調用方的信息傳遞給方法。?可以獲取源代碼、行號在源代碼和調用方的成員名稱的文件路徑。?此信息用于跟蹤,調試和創建診斷工具非常有用。若要獲取此信息,則使用適用于可選參數,每個都有一個默認的屬性。?下表列出了?System.Runtime.CompilerServices?命名空間中定義的調用方信息屬性:

?

特性

說明

類型

CallerFilePathAttribute

包含調用方源文件的完整路徑。?這是文件路徑在編譯時。

String

CallerLineNumberAttribute

在調用方法的源文件中的行號。

Integer

CallerMemberNameAttribute

方法或調用方的屬性名稱。?請參見?Member Names?本主題后面

String

? ? ? ? ? ? ? ? ? ? ? 示例

下面的示例演示如何使用調用方信息屬性。?在每次調用?TraceMessage?方法,信息將替換為可選參數的參數的調用方。

1 // using System.Runtime.CompilerServices 2 // using System.Diagnostics; 3 4 public void DoProcessing() 5 { 6 TraceMessage("Something happened."); 7 } 8 9 public void TraceMessage(string message, 10 [CallerMemberName] string memberName = "", 11 [CallerFilePath] string sourceFilePath = "", 12 [CallerLineNumber] int sourceLineNumber = 0) 13 { 14 Trace.WriteLine("message: " + message); 15 Trace.WriteLine("member name: " + memberName); 16 Trace.WriteLine("source file path: " + sourceFilePath); 17 Trace.WriteLine("source line number: " + sourceLineNumber); 18 } 19 20 // Sample Output: 21 // message: Something happened. 22 // member name: DoProcessing 23 // source file path: c:\Users\username\Documents\Visual Studio 2012\Projects\CallerInfoCS\CallerInfoCS\Form1.cs 24 // source line number: 31 ? 備注 ? 必須為每個可選參數指定一個顯式默認值。?不能將調用方信息特性應用于未指定為選項的參數。

調用方信息屬性不會使一個參數選項。?相反,它們影響傳遞的默認值,當參數省略時。

調用方信息值發出為文本到在編譯時計算的 (IL)中間語言。?不同?StackTrace?屬性的結果異常的,結果不影響的經過模糊處理的。

?

成員名稱

可以使用?CallerMemberName?屬性設置為來避免指定成員名稱作為參數?String?到調用的方法。?通過使用這種方法,可以避免此問題?重命名重構?不更改?String?值。?此優勢為以下任務特別有用:

  • 使用跟蹤和診斷實例。

  • 實現?INotifyPropertyChanged?接口,在綁定數據時。?此接口允許對象的屬性通知一個綁定控件屬性已更改,因此,該控件可顯示最新信息。?不?CallerMemberName?屬性,必須指定屬性名稱為文本。

以下圖表顯示返回的成員名稱,當您使用?CallerMemberName?屬性。

?

調用發生中

成員名稱結果

方法、屬性或事件

方法的名稱,該屬性,或者的事件調用為。

構造函數

字符串 “.ctor”

靜態構造函數

字符串 “.cctor”

析構函數

該字符串 “Finalize”

用戶定義的運算符或轉換

生成的名稱成員,例如, “op_Addition”。

特性構造函數

特性所應用的成員的名稱。?如果屬性是在成員中的任何元素 (如參數、返回值或泛型類型參數),此結果是與組件關聯的成員的名稱。

不包含的成員

(例如,程序集級別或特性應用于型)

可選參數的默認值。

?

?

?

轉載于:https://www.cnblogs.com/SavionZhang/p/5701563.html

總結

以上是生活随笔為你收集整理的INotifyPropertyChanged 接口 CallerMemberName属性的全部內容,希望文章能夠幫你解決所遇到的問題。

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