当我与MusicStore -MVC3 (92 PageNo)进行交流时,他们创建的POCO课程就像这样。
public partial class ShoppingCart
{
MusicStoreEntities storeDB = new MusicStoreEntities();
public static ShoppingCart GetCart(HttpContextBase context)
{
var cart = new ShoppingCart();
cart.ShoppingCartId = cart.GetCartId(context);
return cart;
}
}
我想知道我们可以在部分类中访问静态方法吗?IMO,我们无法在部分类中访问静态方法。 partial表示类的其他部分将包含在命名空间中。但在这种情况下,我没有得到另一个部分类的实现。 1.我们可以在部分类中访问静态方法吗?如果那么怎么样? 2.我可以知道这个部分类是如何进入这个音乐商店应用程序的,因为我无法找到其实现的其他部分。
更新:当我搜索models目录中的所有cs文件时,没有其他shoppingCart类。如果有人能告诉我部分实施的位置,那么它会有所帮助。
答案 0 :(得分:8)
C#中的partial
类绝对可以访问static
方法。 partial
属性只是说一个类可以(不是必须)在多个文件中定义,否则不会影响成员查找。
编辑回复有问题的评论
为什么找不到ShoppingCart
的其他实现的可能解释是它可能不存在。 partial
类不需要具有多个定义。 partial
仅表示可能是定义的其他部分。
答案 1 :(得分:3)
是的,您可以访问部分类中的静态方法。
部分类只是一种在多个源文件中表示常规类的方法,通常是由工具控制(或生成)的一些源文件。
你可以在任何地方拨打ShoppingCart.GetCart(context)
- 这是一种普通的公共静态方法。
你的第二个问题意味着什么仍然不是很清楚,但 根本不是另一个部分。有一个只在一个文件中声明的部分类是很好的(虽然不寻常)。