Điều tốt nhất tôi có thể đưa ra đối với các loại tài liệu tham khảo là:
using System;
public class Gizmo
{
public int Foo { set; get; }
public double Bar { set; get; }
public Gizmo(int f, double b)
{
Foo = f;
Bar = b;
}
}
class Demo
{
static void ShowGizmo(Gizmo g = null)
{
Gizmo gg = g ?? new Gizmo(12, 34.56);
Console.WriteLine("Gizmo: Foo = {0}; Bar = {1}", gg.Foo, gg.Bar);
}
public static void Main()
{
ShowGizmo();
ShowGizmo(new Gizmo(7, 8.90));
}
}
Bạn có thể sử dụng ý tưởng tương tự cho cấu trúc bằng cách làm cho các tham số nullable:
public struct Whatsit
{
public int Foo { set; get; }
public double Bar { set; get; }
public Whatsit(int f, double b) : this()
{
Foo = f; Bar = b;
}
}
static void ShowWhatsit(Whatsit? s = null)
{
Whatsit ss = s ?? new Whatsit(1, 2.3);
Console.WriteLine("Whatsit: Foo = {0}; Bar = {1}",
ss.Foo, ss.Bar);
}
Nguồn
2010-04-21 01:18:41
Không có giới hạn như " Loại hệ thống ". Điều gì khiến bạn tin điều đó? –
chúng có thể là các loại khác, nhưng giá trị mặc định duy nhất có sẵn là null (hoặc có thể một cái gì đó mà loại có thể chuyển đổi hoàn toàn từ nhưng tôi không thể kiểm tra điều này vì tôi không có 4.0 tại nơi làm việc)) –