有没有一种方法可以在C#中执行此操作,而无需为存在的每个var类型创建新的方法来重载?

$box = !empty($toy) : $toy ? "";


我能想到的唯一方法是:

if (toy != null)
{
    box += toy;
}


或这个:

public string emptyFilter(string s) ...
public int emptyFilter(int i) ...
public bool emptyFilter(bool b) ...
public object emptyFilter(object o)
{
    try
    {
        if (o != null)
        {
            return o.ToString();
        }
        else
        {
            return "";
        }
    }
    catch (Exception ex)
    {
        return "exception thrown":
    }
}

box += this.emptyFilter(toy);


我基本上想检查以确保变量/属性已设置/不为空/存在/具有值/等...并返回它或“”,而没有像上面的代码那么荒谬。

最佳答案

return variable ?? default_value;


那是你要做什么?考虑到您正在显示PHP代码并用C#标记,我有些困惑。

您还可以使用Nullable<T>类型。



如何扩展类?

public static class ToStringExtender
{
  public static String ToStringExt(this Object myObj)
  {
    return myObj != null ? myObj.ToString() : String.Empty;
  }
}

var myobject = foo.ToStringExt()


DEMO

关于c# - C#短if语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5284223/

10-11 22:25