我有一個在C#中使用公共方法的類A.我想允許訪問這個方法只有類B.這是可能的嗎?有沒有辦法限制只有在C#中的特定類的公共方法的訪問?
UPDATE:
這是我想做什麼:
public class Category
{
public int NumberOfInactiveProducts {get;}
public IList<Product> Products {get;set;}
public void ProcessInactiveProduct()
{
// do things...
NumberOfInactiveProducts++;
}
}
public class Product
{
public bool Inactive {get;}
public Category Category {get;set;}
public void SetInactive()
{
this.Inactive= true;
Category.ProcessInactiveProduct();
}
}
我想其他的程序員做的事:
var prod = Repository.Get<Product>(id);
prod.SetInactive();
我想確保他們不要手動調用ProcessInactiveProduct:
var prod = Repository.Get<Product>(id);
prod.SetInactive();
prod.Category.ProcessInactiveProduct();
我想允許Category.ProcessInactiveProduct只訪問Product類。其他類不應該能夠調用Category.ProcessInactiveProduct。
+1非常有趣的問題。 – 2010-04-13 13:54:12
如果您只希望它通過B類訪問 - 那麼這不是一個「公共」方法。 – Nate 2010-04-13 13:58:19