不同对象访问不同成员

  • 本文关键字:成员 对象 访问 c#
  • 更新时间 :
  • 英文 :


有一个类比如计算器它可以添加一些值

public class Calculator
{
public int Addition(int a, int b)
{....}
public int Addition2(int a, int b, int c)
{....}
public int Addition3(int a, int b,int c, int d)
{....}
}

在主要:

Calculator calc= new Calculator();
// create object

如何创建一个或多个对象,以便我可以将对象访问限制为仅对特定函数。

Ex: obj1只能访问加法,obj2可以访问加法&Addition2等等。意味着定义对类函数的特定对象访问。

可以
public interface ICalculator
{
int Addition(int a, int b);
}
public interface ICalculator1 : ICalculator
{
int Addition2(int a, int b, int c);
}
public interface ICalculator2 : ICalculator1
{
int Addition3(int a, int b, int c, int d);
}
public class Calculator : ICalculator2
{
public int Addition(int a, int b)
{ return 1; }
public int Addition2(int a, int b, int c)
{ return 1; }
public int Addition3(int a, int b, int c, int d)
{ return 1; }
}

然后在主函数中:

static void Main(string[] args)
{
//Access to first func
ICalculator calculator = new Calculator();
calculator.Addition(1, 1);
//Access to first & second func
ICalculator1 calculator1 = new Calculator();
calculator1.Addition(1, 1);
calculator1.Addition2(1, 1, 1);
//Access to first & second & third func
ICalculator2 calculator2 = new Calculator();
calculator2.Addition(1, 1);
calculator2.Addition2(1, 1, 1);
calculator2.Addition3(1, 1, 1, 1);
}

Interface是一个强大的工具,可以发布某些成员,而其他成员可以保持隐藏。

public interface IAddition
{
public int Addition(int a, int b)
}
public interface IAddition2
{
public int Addition2(int a, int b, int c)
}
public interface IAddition3
{
public int Addition3(int a, int b,int c, int d)
}
public class Calculator : IAddition, IAddition2, IAddition3
{
public int Addition(int a, int b)
public int Addition2(int a, int b, int c)
public int Addition3(int a, int b, int c, int d)           
}
IAddition addition = new Calculator();
IAddition2 addition2 = new Calculator();
IAddition3 addition3 = new Calculator();

可以让Calculator实现多个接口

public class Calculator : IAddition1, IAddition2, IAddition3
{
public int Addition(int a, int b)
{....}
public int Addition2(int a, int b, int c)
{....}
public int Addition3(int a, int b, int c, int d)
{....}
}
interface IAddition1 {
int Addition(int a, int b)
}
interface IAddition2 {
int Addition(int a, int b, int c)
}
interface IAddition3 {
int Addition(int a, int b, int c, int d)
}

可以创建为

IAddition2 calc = new Calculator();

只有整型Addition2(int a, int b, int c)

最新更新