1

学校教育の最初の部分を終えたばかりで、仕事を探しています。C#.net開発者のインタビューに行きました。インタビュー中に、2つのプロパティを持つクラスを作成するように依頼されました。次に、asp.netフォームで、そのクラスからオブジェクトを作成します。そこで、オブジェクトのプロパティを設定して、2つの文字列を受け取るコンストラクターを使用してクラスを作成しました。asp.netページに、2つのテキストボックスと1つのボタンを追加しました。ボタンのクリック方法で私は行に入れましたClass whatever = new Class(textbox1.text, textbox2.text)

それで、私が終わった後、私は私にインタビューしている紳士を見て、なぜ彼らが私が狂っているように私を見ているのか疑問に思います。だから私は「あなたはそれがうまくいくとは思わないのですか?」と尋ねます。彼らは、「それを実行し、私たちが見るでしょう」と答えました。では、プログラムを実行し、テキストボックスにテキストを入力して、ボタンをクリックしました。何を推測する、何も起こらなかった笑。その時点で、「必要に応じて、オブジェクトをいくつかのラベルなどに出力できます」と言いました。彼らは、私が何か間違ったことをしたように私を見ていると、「いいえ、この行にブレークポイントを置いて、プログラムを再度実行してください」と言いました。したがって、プログラムを再度実行すると、ブレークポイントは、オブジェクトがテキストで作成されたことを示しています。それから私は「うーん、それはうまくいった」と聞きます。その時点で私は彼らに合わせて言った、「誰かがこれらの人が私に何を望んでいたかについて何か考えがありますか?たぶん、次のインタビューで、私はそのように再び困惑することはないでしょう。誰かがこれらの人が私に何を望んでいたかについて何か考えがありますか?たぶん、次のインタビューで、私はそのように再び困惑することはないでしょう。

助けてくれてありがとう、

クレイグ

4

2 に答える 2

3

オブジェクトをインスタンス化する唯一の方法はコンストラクターであることに注意してください。そこにたどり着くにはさまざまな方法がありますが、最終的にはコンストラクターが常に呼び出されます。あなたはそれをうまくインスタンス化しました。

これは私に2つの質問を提起します:

  1. 質問を誤解して、ここで間違って伝えましたか?
  2. インタビュアーは本当に馬鹿ですか?

それが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;
于 2012-10-21T20:57:50.757 に答える
1

オブジェクトはさまざまな方法で作成できますが、判断する前に、知っているさまざまな方法でオブジェクトを作成する機会が与えられたはずです。

これが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 に答える