0
對DataGridView
DataGridViewRowCollection
財產的保護等級的選擇是我無法理解的。它被設置爲protected
,所以無法從外部訪問它,這是很自然的事情。我無法想象有人給出合理的解釋,但也許......任何人?爲什麼DataGridViewRowCollection.DataGridView屬性受保護?
對DataGridView
DataGridViewRowCollection
財產的保護等級的選擇是我無法理解的。它被設置爲protected
,所以無法從外部訪問它,這是很自然的事情。我無法想象有人給出合理的解釋,但也許......任何人?爲什麼DataGridViewRowCollection.DataGridView屬性受保護?
我相信stuartd是對的,它鼓勵通過繼承擴展DataGridViewRowCollection
,而不是通過擴展方法。我發現它很奇怪,因爲我認爲沒有辦法用你自己的實現來代替DataGridView
的Rows
屬性。事實證明,有一種方法可以實現,它被稱爲protected void CreateRowsInstance()
- DataGridView
的一種方法,因此將DataGridView
屬性放在受保護的範圍內似乎至少有點合理。
因爲在正常使用情況下,您不應該從行中訪問DataGridView,因爲您已經有了對它的引用。然而,你是否正在實現一個自定義DataGridViewRowCollection(如果這樣的事情甚至可能),那麼你將需要能夠訪問父。 – stuartd
事實上,'DataGridViewRow'中的同一個屬性是'public'。擴展'DataGridViewRowCollection'的更自然的方法是使用擴展方法,因爲即使我通過繼承來擴展它,我也無法替換DataGridView的'Rows'屬性。所以如果我正在實現一個全新的控件,繼承是有意義的,但爲什麼我會在這種情況下使用'DataGridViewRowCollection'而不是我自己的集合呢? –