1

我有一個自定義的類,並想隱式地爲其屬性之一分配一個值。我知道微軟曾經有這種內置的一些控件,例如TextBox1 = "Sets the TextBox1.Text property"。那是因爲它是內置於編譯器還是可用?如何設置類屬性的隱式賦值?

這似乎與隱式轉換類似,但我需要修改結果的實例。

我實際的代碼示例:

public class CustomObject<TObject> 
{ 
    public TObject BaseObject { get; set; } 

    //Psuedocode for what I want, this doesn't compile for multiple reason 
    public implicit operator CustomObject<TObject>(TObject FillIn) 
    { 
     this.BaseObject = FillIn; 
    } 
} 

//Usage 
var x = new CustomObject<int>(); 
x = 3; //this is the end result I want to code. 
+1

嗯,不 - 你不能設置一個文本框是一個字符串。如果你真的,真的相信你可以,請展示該代碼...因爲它不起作用。 – 2013-03-21 21:46:19

+2

這些被稱爲*默認屬性*,並在VB中可用。 – slugster 2013-03-21 21:47:29

+0

Jon,請參閱@slugster的評論,我是一個VB轉換器。 * C#中的默認屬性*可用於自定義類嗎? – 2013-03-21 21:53:04

回答

4

C#中的implicit超負荷運營商不能設置一個屬性的對象,它只能轉換本身的對象。

來自VB6的默認屬性在C#或VB.NET中不可用。

+0

** Visual Basic說明**在以前的Visual Basic版本中,允許您實現無參數默認屬性。這不再被允許。有關詳細信息,請參閱[Visual Basic中的默認屬性更改](http://msdn.microsoft.com/zh-cn/library/h7bfkxc1(v = vs.71).aspx) - [Source](http:// msdn.microsoft.com/en-us/library/2b6akew6(v=vs.71).aspx) – 2013-03-21 22:08:10