这些自定义返回类型在这个c#示例中做什么?



我知道具有返回类型的函数将函数的值返回给该函数的调用者。然而,我无法在实践中解释它。

例如:

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时,如果添加操作成功,你将返回相同的对象。

最新更新