首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Effective C# 原則 5:務必覆寫 ToString() 方法(一)

     編輯:關於C語言

為什麼每個類型都該覆寫 ToString()?

在 .NET 世界裡,System.Object.ToString() 是最常被呼叫的方法之一。身為類別設計者,你應該為所有使用者提供一個「通情達理」的類別——亦即對使用者友善。否則,你就強迫使用者自行拼湊屬性並加上易讀的說明。這個以字串形式存在的類別說明,能輕易地在 Windows Forms、Web Forms、主控台輸出等場合顯示物件資訊,也極利於除錯。你所設計的任何型別,都應合理地覆寫此方法;當設計更複雜的型別時,更應實作功能更強的 IFormattable.ToString()。承認吧:若你不覆寫這個慣用方法,或寫得很爛,使用者將不得不幫你修補。

預設實作的缺失

System.Object 版的 ToString() 僅回傳型別名稱(如 "Rect"、"Point"、"Size"),完全無法如你所願地呈現給使用者。但這只是你未覆寫時的結果。你只需為類別寫一次,使用者卻會呼叫無數次。設計類別時多花一點心力,每次使用都能獲得回報。

實作範例:Customer 類別

考慮一個簡單的 Customer 類別,包含三個欄位:

public class Customer
{
    private string _name;
    private decimal _revenue;
    private string _contactPhone;
}

預設繼承的 ToString() 回傳 "Customer",毫無助益。即使僅供除錯使用,也應更靈活。覆寫後應回傳使用者視角的文字說明,對於 Customer 而言,應是名稱:

public override string ToString()
{
    return _name;
}

個人建議

一般不會在 ToString() 提供過多說明,給一個名稱通常已足夠,再搭配 SDK 文件。更多時候,在類別名稱後附加重要屬性說明。曾在第三方程式庫見過嚴謹的結構:類別名之後,附加關鍵內容與重要屬性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved