刚完成学业的第一部分,我正在找工作。我去了一个C#.net开发人员的面试。在采访中,我被要求创建一个有两个属性的类。然后在asp.net表单中创建该类的对象。所以我用一个带有两个字符串的构造函数创建了一个类,设置了对象的属性。在asp.net页面中,我添加了两个文本框和一个按钮。在按钮的点击方法中,我放入了行Class whatever = new Class(textbox1.text, textbox2.text)
所以在我结束之后,我会看到正在采访我的绅士,并想知道为什么他们看着我,就像我疯了一样。所以我问,“你认为这不会起作用吗?”他们回答说,“跑吧,我们会看到”。好的,所以我运行程序,在文本框中输入一些文本,然后单击按钮。猜猜怎么样,什么也没发生哈哈。在那一点上,我说,“如果你愿意,我可以将对象输出到某些标签或其他东西,如果你愿意的话。”他们说,因为他们看着我,就像我做错了一样,“不,只是在这条线上设置一个断点并重新运行程序。”所以我们再次运行程序,断点显示对象是用文本创建的。然后我听到“嗯,这很有效。”在那一点上,我调到他们面前说:“你们是不是在跟我说话,还是你真的觉得那不行?”他们回答我说的只是创建一个对象的一种非常古老的方式。还有其他方法来创建对象吗?我该怎么办?在我的所有编程类中都教过我从类中创建一个对象,这是正确的方法。有谁知道这些家伙想从我这里得到什么?也许在下一次采访中,我不会再那样难过了。
感谢您的帮助,
克雷格
答案 0 :(得分: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;
第一个例子是最近的