2017-05-04 66 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' –