C#.Net Interview从类中创建一个对象

时间:2012-10-21 20:52:52

标签: c# oop

刚完成学业的第一部分,我正在找工作。我去了一个C#.net开发人员的面试。在采访中,我被要求创建一个有两个属性的类。然后在asp.net表单中创建该类的对象。所以我用一个带有两个字符串的构造函数创建了一个类,设置了对象的属性。在asp.net页面中,我添加了两个文本框和一个按钮。在按钮的点击方法中,我放入了行Class whatever = new Class(textbox1.text, textbox2.text)

所以在我结束之后,我会看到正在采访我的绅士,并想知道为什么他们看着我,就像我疯了一样。所以我问,“你认为这不会起作用吗?”他们回答说,“跑吧,我们会看到”。好的,所以我运行程序,在文本框中输入一些文本,然后单击按钮。猜猜怎么样,什么也没发生哈哈。在那一点上,我说,“如果你愿意,我可以将对象输出到某些标签或其他东西,如果你愿意的话。”他们说,因为他们看着我,就像我做错了一样,“不,只是在这条线上设置一个断点并重新运行程序。”所以我们再次运行程序,断点显示对象是用文本创建的。然后我听到“嗯,这很有效。”在那一点上,我调到他们面前说:“你们是不是在跟我说话,还是你真的觉得那不行?”他们回答我说的只是创建一个对象的一种非常古老的方式。还有其他方法来创建对象吗?我该怎么办?在我的所有编程类中都教过我从类中创建一个对象,这是正确的方法。有谁知道这些家伙想从我这里得到什么?也许在下一次采访中,我不会再那样难过了。

感谢您的帮助,

克雷格

2 个答案:

答案 0 :(得分:3)

请注意,构造函数是实例化对象的唯一方法。有不同的方法来达到它,但最终构造函数总是被调用。你实例化它很好。

这为我提出了两个问题:

  1. 您是否误解了这个问题,并在此错误地传达了这个问题?
  2. 面试官真的很蠢吗?
  3. 如果它是1号,运气不好。
    如果它是2号,如果我是你,如果你被提供,我就不会接受这份工作!

    构建对象的几种方法:

    // Default constructor:
    MyClass instance = new MyClass();
    
    // overloaded constructor:
    MyClass instance = new MyClass(val1, val2, valN);
    
    // object initialiser constructor:
    MyClass instance = new MyClass
    {
        Val1 = val1,
        Val2 = val2
    };
    
    // runtime with given type
    Type myClassType = typeof(MyClass); // this would be more dynamic (unknown at design time)
    MyClass instance = Activator.CreateInstance(myClassType) as MyClass;
    
    // runtime with reflection
    Type myClassType = typeof(MyClass);
    ConstructorInfo cstr = type.GetConstructor(Type.EmptyTypes);
    MyClass instance = cstr.Invoke(new object[]()) as MyClass;
    

答案 1 :(得分:1)

对象可以用不同的方式创建,但我认为它们应该让你有机会在判断之前以你知道的方式创建对象

这是一个

SomeClass whatever = new SomeClass
{
   property1 = textbox1.Text,
   property2 = textbox2.Text
}

或者

SomeClass whatever = new SomeClass();
whatever.property1 = textbox1.Text;
whatever.property2 = textbox2.Text;

第一个例子是最近的