C# 3.5 Optional and DefaultValue for parameters

前端 未结 3 2010
迷失自我
迷失自我 2021-02-12 16:15

I am using C# .net 3.5 to build an application. I have been working with optional parameter attributes in .net 4.0 with no problems. I did notice that with 3.5 there is the opti

相关标签:
3条回答
  • 2021-02-12 16:29

    Take a look at the following StackOverflow thread: C# Optional Parameters in .net 3.5

    No use in copy pasting everything which has been said there, as the thread covers pretty much everything. Good luck.

    0 讨论(0)
  • 2021-02-12 16:39

    The Optional attribute has been available since C# 1.0, and is used when interoperating with external code, it has no effect on method calls in your own code.

    As there is no optional parameters in C# 3, you can use overloading instead:

    public static void MethodName(string name, string placeHolder) {
      ...
    }
    
    public static void MethodName(string name) {
      MethodName(name, null);
    }
    

    (Side note: There is no C# version 3.5, that is a framework version.)

    0 讨论(0)
  • 2021-02-12 16:45

    Optional parameters are C# 4.0 language feature so it doesn't matter which framework you are targeting, but you have to compile it using VS 2010 or newer.

    Use this syntax in VS 2010 or newer:

    public static void MethodName(string name, string placeHolder = null)
    {
        // body
    }
    

    Or this in older one:

    public static void MethodName(string name, string placeHolder)
    {
        // body
    }
    
    public static void MethodName(string name)
    {
        MethodName(name, null);
    }
    
    0 讨论(0)
提交回复
热议问题