簡體   English   中英

如何確定對象是否可以在C#中轉換為有意義的字符串

[英]How to determine whether an object can be convert to meaningful string in C#

我需要確定對象的ToString()方法是否將返回有意義的字符串而不是其類名。 例如,bool,int,float,Enum等返回有意義的字符串,而ArrayList的實例將返回“System.Collections.ArrayList”。 如果有一種簡單的存檔方式嗎?

提前致謝。

此致,韋恩

你可以將object.GetType().ToString() object.ToString()object.GetType().ToString()進行比較object.GetType().ToString()

善良,

您可以使用反射來檢查對象類是否覆蓋toString。 像這樣

if (obj.GetType().GetMethod("toString",
    BindingFlags.Instance |
    BindingFlags.Public |
    BindingFlags.DeclaredOnly) != null)
{
    // do smth
}

更新 - 查看是否有任何基類具有非來自Object的toString實現。

        MethodInfo pi = null;
        Type t = obj.GetType(0;
        while (t != typeof(object) && pi == null)
        {
            pi = t.GetMethod("toString",
                BindingFlags.Instance |
                BindingFlags.Public | 
                BindingFlags.DeclaredOnly);
            t = t.BaseType;
        }

        if (pi != null)
        {
            // do smth
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM