2017-05-04 107 views
2

在學校裏的功課,我們有這樣的例子:字符串格式作爲參數?

image here

它告訴我創建一個名爲public abstract methodToString字符串格式參數,它返回一個string。這怎麼可能?

我嘗試這樣做:

public abstract string ToString(String.Format type) 
{ 
    return "Some text"; 
} 

但它返回的一些誤區:

The type or namespace name 'Format' could not be found (are you missing a using directive or an assembly reference?) 
'Shape.ToString(string, Format)' cannot declare a body because it is marked abstract 

我怎樣才能解決這個問題?

+1

'abstract'方法不能有body ..'public abstract string ToString(String.Format type);'只會有效。 –

+0

連同@BagusTesa所說的參數被命名爲格式,但是在圖像中是類型'string'。所以這將是'公共抽象字符串ToString(字符串格式);' – Lithium

+0

好努力,但你只是誤讀spec +1試試 – WhatsThePoint

回答

5

你的方法應該是這樣的:

public abstract string ToString(string format); 

您missreaded規範。您的圖像顯示ToString方法,其名稱格式的參數爲string

查看MSDN string.format page以獲取有關C#中格式字符串的更多信息。您可以查看MSDN abstract page

+0

是的好,但圖像沒有告訴我它返回一個字符串?例如ToString(string format):string(this) – Jesper

+0

該方法返回一個字符串:public abstract ** string ** ... –

+0

哦,呵呵,我覺得自己像個noob。好的,太好了,謝謝! – Jesper

5

我認爲你誤讀了規範。它有一個帶名稱格式的字符串類型的參數。即

public abstract string ToString(string format); 

注二等錯誤,說,你需要沒有身體標記爲抽象的方法。如果需要,您可以在那裏提供實現,但在這種情況下,您希望將其標記爲virtual而不是abstract

+0

沒關係,但圖像沒有告訴我它返回一個字符串?例如ToString(字符串格式):string(this) – Jesper

+0

@Jesper,在規範中它有'ToString(string ** format **):string' –