2012-02-03 116 views
2

由於我正在通過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,我們無法訪問部分類中的靜態方法。 部分意味着該類的其他部分將被包含在命名空間中。但在這種情況下,我沒有得到這個另一個部分類的實現。 1.我們可以訪問部分類中的靜態方法嗎?如果那麼如何? 2.我可以知道這個部分班是如何進入這個音樂商店的應用程序,因爲我無法找到它的其他部分實施。

更新:當我搜索模型目錄中的所有cs文件時,沒有其他shoppingCart類。如果任何人都可以告訴我部分實施完成的地方,那麼這將會有所幫助。

+0

你能澄清#2一點。目前還不清楚你在那裏要求什麼 – JaredPar 2012-02-03 15:48:57

+1

你應該可以像其他任何課程一樣。你試過了嗎?如果是這樣,它不起作用,你會得到什麼錯誤? – 2012-02-03 15:49:06

+0

@JaredPar已更新。它的部分類。我在問它將在何處定義。 – 2012-02-03 15:50:32

回答

8

A partial在C#中的類絕對可以訪問static方法。 partial屬性只是說可以在多個文件中定義類可以(不是必須),否則不會影響成員查找。

編輯在回答問題

爲什麼你找不到其他實施ShoppingCart是它可能不存在一個可能的解釋做出評論。 A partial類不需要有多個定義。 partial僅意味着可能是定義的其他部分。

3
  1. 是的,您可以訪問部分類中的靜態方法。

    部分類是只是一種在多個源文件中表示常規類的方式,通常是一些由工具控制(或生成)的源文件。

    您可以隨時撥打ShoppingCart.GetCart(context) - 這是一種正常的公共靜態方法。

  2. 目前還不十分清楚你的第二個問題是什麼意思,但沒有作爲另一部分。有一個只在單個文件中聲明的部分類是很好的(雖然不尋常)。

+0

其部分類。更新。 – 2012-02-03 15:51:05

+0

@Ravi:你究竟是什麼意思,「我可以知道這部分是怎麼來的」?這只是一個源文件 - 它在那裏,你可以看到它。也許有沒有其他的一部分,也許有... – 2012-02-03 15:52:05

+0

我搜查了所有文件。可能是我錯過了一些事情 – 2012-02-03 15:58:13

相關問題