정적 클래스가 있고 그 안에 정적 정적 특성이 여러 개 있습니다. 이 클래스를 글로벌 클래스로 취급합니다. I 처리를 위해 다른 클래스의 메소드에 전달할 수 있도록C# 정적 클래스를 변수로 처리하는 방법
그러나 지금 그래서 사실상 I에서만 수 ..
난이 클래스를 인스턴스화 할 수있다 .. 가변이 클래스 다뤄야 이 클래스 안에 변수를 할당하십시오.
제 이해가 맞나요? 아니면 뭔가 빠졌습니까? 어쩌면
public static class Global_bk
{
public const int RobotMax = 2;
// GUI sync context
public static MainForm mainForm;
public static SynchronizationContext UIContext;
// Database
public static Database DB = null;
public static string localDBName = "local.db";
public static Database localDB = null;
public static Database ChangeLogDB = null;
public static string changeLogDBName = "ChangeLog.db";
}
내가 Global_bk 전역에서 내용을 복사 할 필요가
public static class Global
{
public const int RobotMax = 2;
// GUI sync context
public static MainForm mainForm;
public static SynchronizationContext UIContext;
// Database
public static Database DB = null;
public static string localDBName = "local.db";
public static Database localDB = null;
public static Database ChangeLogDB = null;
public static string changeLogDBName = "ChangeLog.db";
}
하자 내가이 같은 클래스가 있다고 가정하고, 어떻게 든 다른 클래스에서 이것의 사본을 보관해야합니다.
그리고 그 후 나는 내가 비교 메소드를 호출하고 내부의 정적 글로벌 클래스를 통과 가야합니까 어떻게 내 기본 폼에 따라서
static class extentions
{
public static List<Variance> DetailedCompare<T>(T val1, T val2)
{
List<Variance> variances = new List<Variance>();
FieldInfo[] fi = val1.GetType().GetFields();
foreach (FieldInfo f in fi)
{
Variance v = new Variance();
v.Prop = f.Name;
v.valA = f.GetValue(val1);
v.valB = f.GetValue(val2);
if (!v.valA.Equals(v.valB))
variances.Add(v);
}
return variances;
}
}
class Variance
{
string _prop;
public string Prop
{
get { return _prop; }
set { _prop = value; }
}
object _valA;
public object valA
{
get { return _valA; }
set { _valA = value; }
}
object _valB;
public object valB
{
get { return _valB; }
set { _valB = value; }
}
}
, 같은 방법으로 두 클래스의 내용을 비교해야 ?
예 : extentions.DetailedCompare (Global, Global_bk)? 물론 이것은 타입을 변수로 전달할 수 없으므로 오류가 발생합니다. 당신은 classname.membername와 멤버에 액세스 할 수 있습니다
물론입니다. 하지만 어떻게 모든 회원/변수 등 클래스 자체에 액세스합니까? – CJC
정적 클래스의 모든 멤버는 정적입니다 ... 액세스하려는 경우이를 공개 또는 내부로 만듭니다. 그런 다음 클래스 이름을 사용하십시오. Member (methods properties ...) –
네, 그 점도 알고 있습니다. 공개입니다. 하지만 클래스 자체를 함수/멤버의 인수로 변수로 전달해야합니다.각각의 변수/멤버/속성/속성을 개별적으로 전달하고 싶지 않습니다. 본질적으로 그 내용을 다른 동일한 클래스에 복사하여 두 클래스를 비교할 수 있습니다. – CJC