C#-创建类似ToString()的函数

C#-创建类似ToString()的函数,c#,C#,我想创建函数, 函数名为extend(),它应该位于字符串bool control.like的后面,与默认函数ToString()类似 extend()函数可以检查输入类型 if input is string ? ToUpperCase , Substring and Replace the string if input is bool ? checking the bool if input is Control ? check control type , change text,co

我想创建函数, 函数名为extend(),它应该位于字符串bool control.like的后面,与默认函数ToString()类似

extend()函数可以检查输入类型

if input is string ? ToUpperCase , Substring and Replace the string
if input is bool ? checking the bool 
if input is Control ? check control type , change text,color 
if input is List ? to update global list
并获取属性名称以执行某些操作

string SaveString ="";
SaveString.extend();

if(propertyname(object) =="SaveString"){
}
如何创建这样的函数?谢谢使用

在对象上使用扩展方法时不会有性能损失,因为它是编译器功能,请参见使用


在对象上使用扩展方法时将不会有性能损失,因为它是编译器的特性,请参见更详细的说明。
extend
到底应该做什么?它是。。。仍然不清楚您希望
extend
做什么。是否希望它获取输入变量的名称?因为这是不可能的,你知道。请更详细地描述一下。
extend
到底应该做什么?它是。。。仍然不清楚您希望
extend
做什么。是否希望它获取输入变量的名称?因为那是不可能的,你知道。这是我选择使用“从不”这个词的少数情况之一。您永远不应该为
对象定义扩展方法@Abion47我部分同意您的看法,因为我猜询问者希望扩展函数为每种类型执行不同的操作。在
对象上使用扩展方法时不会有性能损失,因为它是编译器功能,看,我真的想不出什么时候使用
对象
扩展方法是合理的,而实用程序/工厂方法或泛型不是更好的设计选择。@Abion47我知道你的意思。不过这只是一个品味问题,我个人也不希望
Extend()
方法在intellisense中随处可见。泛型并不真正适用,除非OP想要与输入相同的返回类型。你可以为每种类型或任何东西定义每种扩展方法,重点是展示它是如何完成的。这是我选择使用“从不”这个词的少数情况之一。您永远不应该为
对象定义扩展方法@Abion47我部分同意您的看法,因为我猜询问者希望扩展函数为每种类型执行不同的操作。在
对象上使用扩展方法时不会有性能损失,因为它是编译器功能,看,我真的想不出什么时候使用
对象
扩展方法是合理的,而实用程序/工厂方法或泛型不是更好的设计选择。@Abion47我知道你的意思。不过这只是一个品味问题,我个人也不希望
Extend()
方法在intellisense中随处可见。泛型并不真正适用,除非OP想要与输入相同的返回类型。您总是可以为每种类型或任何东西定义每一个扩展方法,重点是展示它是如何完成的。
string SaveString ="";
SaveString.extend();

if(propertyname(object) =="SaveString"){
}
namespace System
{
    public static class ObjectExtension
    {
        public static string Extend(this object input)
        {
            // Do something to input object.
            // For example, you can have different implementation based on its type.

            if (input is string)
            {
            }
            else if (input is bool)
            {
            }
        }
    }
}