default C# with Example



default C# with Example

For classes, interfaces, delegate, array, nullable (such as int?) and pointer types, default(TheType) returns null: 
class MyClass {} 
Debug.Assert(default(MyClass) == null); 
Debug.Assert(default(string) == null); 
For structs and enums, default(TheType) returns the same as new TheType(): 
struct Coordinates 
{ 
public int X { get; set; } 
public int Y { get; set; } 
} 
struct MyStruct 
{ 
public string Name { get; set; } 
public Coordinates Location { get; set; } 
public Coordinates? SecondLocation { get; set; } 
public TimeSpan Duration { get; set; } 
} 
var defaultStruct = default(MyStruct); 
Debug.Assert(defaultStruct.Equals(new MyStruct())); 
Debug.Assert(defaultStruct.Location.Equals(new Coordinates())); 
Debug.Assert(defaultStruct.Location.X == 0); 
Debug.Assert(defaultStruct.Location.Y == 0); 
Debug.Assert(defaultStruct.SecondLocation == null); 
Debug.Assert(defaultStruct.Name == null); 
Debug.Assert(defaultStruct.Duration == TimeSpan.Zero); 
default(T) can be particularly useful when T is a generic parameter for which no constraint is present to decide 
whether T is a reference type or a value type, for example: 
 

public T GetResourceOrDefault(string resourceName) 
{ 
if (ResourceExists(resourceName)) 
{ 
return (T)GetResource(resourceName); 
} 
else 
{ 
return default(T); 
} 
} 

0 Comment's

Comment Form

Submit Comment