我是c#或任何类型的编程语言的新手。 当我在c#中看到代码时,发现这里有很多混淆。其中一个我想从这里澄清一下。 方法常见的结构是
<modifier><return type><method name>()
{
//do any thing
return <abc which should same as return type which declared above>;
}
在上述示例中,我在<return type>
使用<class name>
,<dictionary>
等时多次看到过。
但自然这些也是用户定义的类型。所以这也应该在这里。但是,当我们使用“类名”代替字符串或任何数据类型时,从来没有看到实际发生的事情?
请用简单的文字和简单的例子让我理解这一点。
class StockData
{
public int StockID { get; set; };
public double CurrentPrice { get; set; };
public string StockName { get; set; };
}
class GetStock
{
public StockData /*(this is the same name which is the class name above)*/ GetStockData(string symbol)
{
//something
return /*(what will be the return type?)*/;
}
}
答案 0 :(得分:1)
在GetStockData
方法中,返回类型为StockData
,即您必须返回StockData
类的实例或从StockData
继承的任何子类。这取决于您的代码是在GetStockData
方法中创建该实例还是从其他方法获取,但实际上该实例的类型应为StockData
或从StockData
继承的任何子类类。
答案 1 :(得分:1)
因此,如果我们的类 Triangle
和方法 GetTriangle
具有参数 {{1 }}
isBlue
我们可以使用public class Triangle
{
public string Colour { get; set; }
}
public Triangle GetTriangle(bool isBlue)
{
Triangle resultTriangle;
if (isBlue)
{
resultTriangle = new Triangle { Colour = "Blue" };
}
else
{
resultTriangle = new Triangle { Colour = "Red" };
}
return resultTriangle;
}
或GetTriangle
这样的参数调用true
,如下所示:
false
Triangle blueTriangle = GetTriangle(true);
Triangle redTriangle = GetTriangle(false);
的两个结果都是GetTriangle
s,即使它们包含不同的数据(在这种情况下是不同的Triangle
)。
与孩子的木块玩具一样,编译器会检查数据的“形状”,而不是它的颜色。因此,如果您尝试从返回Colour
的方法返回Square
,则编译器将抛出错误,就像您无法在三角形孔中放置方块一样。< / p>