可以部分类访问静态方法吗?

时间:2012-02-03 15:46:02

标签: c# asp.net-mvc-3 partial-classes

当我与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类。如果有人能告诉我部分实施的位置,那么它会有所帮助。

2 个答案:

答案 0 :(得分:8)

C#中的partial类绝对可以访问static方法。 partial属性只是说一个类可以(不是必须)在多个文件中定义,否则不会影响成员查找。

编辑回复有问题的评论

为什么找不到ShoppingCart的其他实现的可能解释是它可能不存在。 partial类不需要具有多个定义。 partial仅表示可能是定义的其他部分。

答案 1 :(得分:3)

  1. 是的,您可以访问部分类中的静态方法。

    部分类只是一种在多个源文件中表示常规类的方法,通常是由工具控制(或生成)的一些源文件。

    你可以在任何地方拨打ShoppingCart.GetCart(context) - 这是一种普通的公共静态方法。

  2. 你的第二个问题意味着什么仍然不是很清楚,但 根本不是另一个部分。有一个只在一个文件中声明的部分类是很好的(虽然不寻常)。