我知道具有返回类型的函数将函数的值返回给该函数的调用者。然而,我无法在实践中解释它。
例如:
public class InMemoryRestaurantData : IRestaurantData
{
readonly List<Restaurant> restaurants;
public InMemoryRestaurantData()
{
restaurants = new List<Restaurant>()
{
new Restaurant { Id = 1, Name = "Scott's Pizza", Location="Maryland", Cuisine=CuisineType.Italian},
new Restaurant { Id = 2, Name = "Cinnamon Club", Location="London", Cuisine=CuisineType.Italian},
new Restaurant { Id = 3, Name = "La Costa", Location = "California", Cuisine=CuisineType.Mexican}
};
}
public Restaurant GetById(int id)
{
return restaurants.SingleOrDefault(r => r.Id == id);
}
public Restaurant Add(Restaurant newRestaurant)
{
restaurants.Add(newRestaurant);
newRestaurant.Id = restaurants.Max(r => r.Id) + 1;
return newRestaurant;
}
在这个例子中,通过调用GetById和Add方法,我不清楚返回类型做什么。如果有人能给我描述一下,我会很感激的。
您描述得不太对——具有返回类型的函数向调用者返回该类型的对象或值。所以它可以作为作业的一部分,例如
Restaurant x = new Restaurant ();
或
Restaurant x = GetRestaurantById(1);
或
Restaurant x;
x = GetRestaurantById(1);
GetById返回一个Restaurant对象。你能看到餐厅的东西吗?
即使没有Restaurant类的定义,你也可以从InMemoryRestaurantData中的列表中推断出一些关于Restaurant对象是什么的信息——一个正在创建的Restaurant对象列表,每个对象都有Id、Name、Location和Cuisine。
因此,如果声明一个新的Restaurant变量并使用Restaurant.GetById(1)
,那么该Restaurant对象将是Scott's Pizza, .Location将包含Maryland,等等…
当你调用GetById传递一个id值时,你期望得到一个具有相同id的Restaurant类型的对象。
当你用一个新的Restaurant调用Add时,如果添加操作成功,你将返回相同的对象。