Метод расширения C # для Null или значения - PullRequest
0 голосов
/ 21 октября 2010

Как написать метод расширения, который должен проверять значение объекта, если объект равен нулю, тогда он должен возвращать нулевое значение в противном случае {без выполнения приведения в конце получения}.

что-то вроде ...

public static object GetDefault(this object obj)
{
    if (obj == null) return null;
    else return obj;
}

Я имею в виду без приведения я могу проверить на ноль?

int? a=a.GetDefault();

ContactType type=type.GetDefault();   [For EnumType]

string  s=a.GetDefault()

1 Ответ

1 голос
/ 21 октября 2010

Это должно работать:

public static class ExtensionMethods
{
    public static T GetObject<T>(this T obj, T def)
    {
        if (default(T).Equals(obj))
            return def;
        else
            return obj;
    }
}

Я добавил параметр def, потому что ожидал, что вы захотите вернуть это значение по умолчанию, когда значение obj равно нулю. В противном случае вы всегда можете пропустить параметр T def и вернуть вместо него null.

...