2

说我有两个课程:

 ClassA{
    //properties 
    public string NAME{set;get;}
    public string ID{set;get;}
    public int AGE{set;get;}
    //Methods
    public void DoSomething();
    public void MethodA();
    private void MethodB(string name);
    private void MethodC(string name);
    public void MethodD(string name,string id);
    public string getSomething(int age);
    }

    ClassB{
    public void Hello(int input);
    public void HelloWorld(string input);
    }

1)对于ClassA(可能有很多派生类),创建设计界面(GUI)的最佳方法是什么,以便我可以指定其属性值

2)对于ClassA,有没有办法创建一个设计界面(GUI),以便我可以指定调用哪个方法并指定调用方法的顺序/输入/输出?

    public void DoSomethingWithClassA(ClassA ca ){
    ca.MethodA();
  //  ca.MethodB(ca.NAME);
  //  ca.MethodB(ca.ID);
    ca.MethodD(ca.NAME,getSomthing(ca.AGE));

    }

3)如果我有一个名为newClassA的ClassA实例,一个名为newClassB的ClassB实例,有没有办法创建一个设计界面(GUI),以便我可以指定newClassB可以调用newClassA的方法:

ClassA newClassA...
ClassB newClassB...

newClassB.HelloWorld(newClassA.getSomething(newClassA.AGE));

基本上我需要的是有一个设计界面(GUI),以便用户可以“可视化设计”他的类,并可以指定方法的关系/输入/输出。我觉得它有点像过滤图。

如果有人可以找出解决方案/框架/设计模式/关键字,将不胜感激。

(我应该强调设计界面对用户来说意味着 GUI,对此感到抱歉。)

4

1 回答 1

4

我认为您正在寻找流畅的界面之类的东西。

看看这篇文章,它应该可以帮助你如何实现这个:http ://blog.raffaeu.com/archive/2010/06/26/how-to-write-fluent-interface-with-c-and -lambda.aspx

这是一个关于如何使用它的快速示例:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }

    internal Person { }
}

public class PersonFactory
{
    public NameSetter CreatePerson()
    {
        return new NameSetter(new Person());
    }
}

public class NameSetter
{
    private Person person;

    internal NameSetter(Person person)
    {
        this.person = person;
    }

    public AgeSetter SetName(string name)
    {
        this.person.Name = name;
        return new AgeSetter(this.person);
    }
}

public class AgeSetter
{
    private Person person;

    internal AgeSetter(Person person)
    {
        this.person = person;
    }

    public Person SetAge(int age)
    {
        this.person.Age = age;
        return this.person;
    }
}

public class Program
{
    public void Main()
    {
        Person p = new PersonFactory()
                       .CreatePerson()
                       .SetName("Bob")
                       .SetAge(30);
    }
}

我更新了示例以制作Person内部的构造函数。这不是强制性的,但如果您这样做,它将强制您的代码的任何用户使用流利的接口来创建Person.

于 2012-09-07T02:09:52.600 回答