iはForm1.csをファイルにC#、クラスから変数にアクセスする?
public int MyVariable;
を持っている、と私はClass1.csのからアクセスしたいと、あなたはそれを行うための最善の方法だろうどう思いますか?
ありがとうございます!
iはForm1.csをファイルにC#、クラスから変数にアクセスする?
public int MyVariable;
を持っている、と私はClass1.csのからアクセスしたいと、あなたはそれを行うための最善の方法だろうどう思いますか?
ありがとうございます!
シナリオによって異なります。しかし、理想的には、フォーム要素は、それらを使用する必要がある関数に渡されます。
変数をstatic
にします。その後、Form1.MyVariable
のように呼び出すことができます。
質問に答えるかもしれませんが、本当に悪いデザインの始まりのように聞こえます。 –
は、 "static int MyVariable;"、class1.csはForm1.MyVariableを認識しませんでした。( – Rob
InversionOfControlの代わりにho1これがLoD =デザインのleackです) –
プロパティを持つ基本クラス:
class Person
{
private string name; // the name field
public string Name // the Name property
{
get
{
return name;
}
set
{
name = value;
}
}
}
Auto Implemented Properties( "名前" で高度な作業が必要とされていない場合):プロパティにアクセス
class Person
{
public string Name { get; set; } // the Name property with hidden backing field
}
クラス:
Person person = new Person();
person.Name = "Joe"; // the set accessor is invoked here
System.Console.Write(person.Name); // the get accessor is invoked here
これはベストプラクティスの1つであり、どこでも共通の標準として使用されています。 WernerCDが言ったように上記を使い、あなたが望むものを達成するでしょう。 STATIC変数を使用しないでください。本当に必要な場合は、STATICキーワードが重要な意味を持つため、 – msbyuva
このようにしてみてください:
(1)の場合、MyClass.MyIntを読み取り専用にすることができます。
public class MyForm : System.Windows.Forms.Form
{
int myInt;
public MyForm()
{
myInt = 1;
//1
var myClass = new MyClass(myInt);
//2
myClass.MyInt = myInt;
}
}
public class MyClass
{
public int MyInt { get; set; }
public MyClass(int myInt)
{
MyInt = myInt;
}
}
あなたは、いくつかのオプションがあります。
this
)をクラスに渡し、その参照のメンバーを参照してください。さらに、変数ではなくパブリックメンバーのプロパティを作成する傾向があります。ほとんどの場合、プロパティは変数を取得/設定するだけで、それ以上のものはありません。しかし、何かを追加する必要がある場合は、互換性を損なうことなくこれを行うことができます。変数をプロパティに変更すると、クラスのフットプリントが変更され、そのクラスを使用するものが分割されます。
何が問題なのですか? http://stackoverflow.com/questions/15677629/how-to-set-mdiparent-property-of-child-form-in-nonmdi-class – Volatil3
これは本当にあいまいな質問です。これら2つのクラスの関係は何ですか?あなたのForm1はClass1のインスタンスへの参照を持っていますか? – ArielBH
うわー、この質問に答えるためには、もっと多くの文脈が必要です。 – Jamiec
ロブ、それはあなたの緊急の必要性は実際には、オブジェクト指向の基礎チュートリアルだと思われる。ここで犯罪はありません。 –