CodeDefaultValueExpression Class

 

Represents a reference to a default value.

Namespace:   System.CodeDom
Assembly:  System (in System.dll)

System.Object
  System.CodeDom.CodeObject
    System.CodeDom.CodeExpression
      System.CodeDom.CodeDefaultValueExpression

[SerializableAttribute]
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)]
[ComVisibleAttribute(true)]
public class CodeDefaultValueExpression : CodeExpression

NameDescription
System_CAPS_pubmethodCodeDefaultValueExpression()

Initializes a new instance of the CodeDefaultValueExpression class.

System_CAPS_pubmethodCodeDefaultValueExpression(CodeTypeReference)

Initializes a new instance of the CodeDefaultValueExpression class using the specified code type reference.

NameDescription
System_CAPS_pubpropertyType

Gets or sets the data type reference for a default value.

System_CAPS_pubpropertyUserData

Gets the user-definable data for the current object.(Inherited from CodeObject.)

NameDescription
System_CAPS_pubmethodEquals(Object)

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_protmethodFinalize()

Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)

System_CAPS_pubmethodGetHashCode()

Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_protmethodMemberwiseClone()

Creates a shallow copy of the current Object.(Inherited from Object.)

System_CAPS_pubmethodToString()

Returns a string that represents the current object.(Inherited from Object.)

A CodeDefaultValueExpression can be used to represent a reference to a default value.

The Type property specifies the reference to the value type. The CodeDefaultValueExpression class is used in the generation of generics-based code. For more information on generics, see Generics in the .NET Framework Class Library (C# Programming Guide). The following code steps are provided in this section to further describe the use of the CodeDefaultValueExpression class to add a new default value to a code graph.

The code in part 1 is part of a larger example provided for the CodeTypeParameter class. This code, when run through the C# code generator, results in the C# code that appears in part 2. When this code is called in the statement in part 3, the result is the output shown in part 4.

// Part 1: Code to create a generic Print method.
            CodeMemberMethod printMethod = new CodeMemberMethod();
            CodeTypeParameter sType = new CodeTypeParameter("S");
            sType.HasConstructorConstraint = true;
            CodeTypeParameter tType = new CodeTypeParameter("T");
            sType.HasConstructorConstraint = true;

            printMethod.Name = "Print";
            printMethod.TypeParameters.Add(sType);
            printMethod.TypeParameters.Add(tType);
            printMethod.Statements.Add(ConsoleWriteLineStatement(
                new CodeDefaultValueExpression(new CodeTypeReference("T"))));
            printMethod.Statements.Add(ConsoleWriteLineStatement(
                new CodeDefaultValueExpression(new CodeTypeReference("S"))));

// Part 2: Code generated by code in part 1.
public virtual void Print<S, T>()
            where S : new()
         {
            Console.WriteLine(default(T));
            Console.WriteLine(default(S));
        }

// Part 3: Call to the generated method.
dict.Print<System.Decimal, int>();

// Part 4: Output of the generated method.
0
0

The following code example shows the use of the CodeDefaultValueExpression to create default values for decimal and integer parameters. This example is part of a larger example provided for the CodeTypeParameter class.

printMethod.Statements.Add(ConsoleWriteLineStatement(
    new CodeDefaultValueExpression(new CodeTypeReference("T"))));
printMethod.Statements.Add(ConsoleWriteLineStatement(
    new CodeDefaultValueExpression(new CodeTypeReference("S"))));

.NET Framework
Available since 2.0

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: