1

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

所以在我完成后,我看着正在采访我的先生们,想知道他们为什么看着我,就像我疯了一样。所以我问,“你不认为这行得通吗?” 他们回答说:“运行它,我们会看到”。好的,所以我运行了程序,在文本框中输入了一些文本并单击了按钮。你猜怎么着,什么都没发生,哈哈。这时我说:“如果你愿意,我可以将对象输出到一些标签或其他东西上。” 他们看着我,好像我做错了什么一样说:“不,只要在这一行上放一个断点,然后再次运行程序。” 所以我们再次运行程序,断点显示对象是用文本创建的。然后我听到“嗯,这有效。” 那时我调到他们那里说:“ 有谁知道这些家伙想从我这里得到什么?也许在下一次采访中,我不会再被这样难住了。有谁知道这些家伙想从我这里得到什么?也许在下一次采访中,我不会再被这样难住了。

谢谢你的帮助,

克雷格

4

2 回答 2

3

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

这对我提出了两个问题:

  1. 您是否误解了问题并在此处错误地转述了问题?
  2. 面试官真的傻吗?

如果是第一名,那就倒霉了。
如果它是第 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;
于 2012-10-21T20:57:50.757 回答
1

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

这是一个

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

或者

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

第一个例子是最近的

于 2012-10-21T20:57:40.530 回答