2016-03-11 22 views
0

我寫代碼,一個新的圖書館,大部分代碼位於下在同一個庫中不同的類,有關對象引用錯誤調用方法

public class Locked 

大多數圖形函數都在那裏。 但是我也提供了一些特定的奇特數學作爲與Magic Math相同的dll中的獨立名稱空間,這些函數並非像Locked中的每個函數一樣是私有的。

public class MagicMath 

的鎖定類中的某些功能所需要的MagicMath 所以我稱它們爲

MagicMath.ResizeDataSet(... 

這給出了一個錯誤的對象引用是所必需的非靜態字段,方法或屬性

'MagicMath.ResizeDataSet(SortedDictionary <int, List<int>>, int, int)' 

我在這裏有點困惑,因爲MagicMath中的這些函數被識別,它們的參數被接受,我只在函數文本(R esizeDataSet)從代碼中的類中鎖定時被鎖定.. 什麼是錯的?

回答

1

您可以將'MagicMath'內的'Locked'內的方法設置爲static以及調用MagicMath方法或創建MagicMath實例。

看什麼static意味着什麼以及何時用微軟的話來使用它。

使用靜態修飾詞聲明一個靜態成員,該靜態成員屬於 類型本身,而不是特定的對象。靜態修飾符 可與類,字段,方法,屬性,運算符,事件和構造函數一起使用,但不能與索引器, 析構函數或類以外的類型一起使用。

+0

HM添加靜態像「公共靜態SortedDictionary > ResizeDataSet(SortedDictionary user3800527

+0

那麼這取決於它將如何使用。有沒有硬性規定,希望這會有所幫助:http://stackoverflow.com/questions/241339/when-to-use-static-classes-in-c-sharp如果你最初的問題已經解決,那麼請標記這個作爲答案。 – sr28

+0

啊我想我很懂現在,圖形類被圍繞圖形對象(主代碼創建它的一個實例),而數學函數只是函數,而不是對象。 – user3800527

相關問題