2010-06-06 48 views
7

我有一個基類是這樣的:屬性的獲取是否可以抽象,集合是虛擬的?

public class Trajectory{ 
    public int Count { get; set; } 
    public double Initial { get; set { Count = 1; } } 
    public double Current { get; set { Count ++ ; } } 
} 

所以,我有在基類中,這使得設置的虛擬代碼,但GET-S必須保持抽象。所以我需要這樣的東西:

... 
public double Initial { abstract get; virtual set { Count = 1; } } 
... 

但是這段代碼給出了一個錯誤。 重點在於在基類中實現計數器功能,而不是在所有派生類中實現。 那麼,我如何使用不同的修飾符來獲取和設置屬性?

+2

也許你應該編寫單獨的GetInitial SetInitial方法... – Marko 2010-06-06 19:14:32

+4

我很難理解你的代碼背後的意圖。爲一個忽略輸入值的屬性設置setter非常不尋常。如果您改變它以使用方法(沒有未使用的輸入值來混淆事物),則不再需要抽象獲取/虛擬集。 – 2010-06-06 19:45:02

+0

二傳手的要點是它「設置」(以某種方式)輸入的值。你實現你的設置的方式,它更多的是一種方法。 – Henri 2010-06-06 22:16:46

回答

10

將它分成兩個功能:

​​
1

使它既不抽象的,也不是虛擬的。並且使後臺領域保密。這樣,派生類不能覆蓋它,也不能混淆它。

0

不,你不能。至少我還沒有找到解決方案。

如果財產被標記爲abstract那麼它既不是吸氣者也不是具有屍體。

相關問題