私は単純な変数の割り当てで立ち往生しています。私にとってそれを少し複雑にする唯一の条件は、構造体の値をプライベートにする必要があるため、変更されないことです。
構造体の値を安全に使用できるようにするために、パブリックreadonly
変数を使用しようとしています。それが、読み取り専用モードでアプリケーションと情報を共有する方法です。簡単ではないでしょうか?
私は何が欠けていますか?
アプリケーションが開始すると、Page_Load
私は呼び出していますSetTablesMetaDetails()
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
.... some other App inits here
}
else
{
}
// this method should be the one that instanciates the DbTable struct
//..thus sets the values of tables "Name" and "ID"
currProjData.setTablesReferences();
}
- は
struct
、値を割り当てるために使用されます。
public class DBMetaDetails
{
public struct DbTable
{
public DbTable(string tableName, int tableId): this()
{
this.TableName = tableName;
this.TableID = tableId;
}
public string TableName { get; set; }
public int TableID { get; set; }
}
}
- 値を保持する現在のプロジェクト クラス
public static class currProjData
{
static DBMetaDetails.DbTable CustomersMeta = new DBMetaDetails.DbTable();
static DBMetaDetails.DbTable TimesMeta = new DBMetaDetails.DbTable();
public static void SetTablesMetaDetails()
{
TimesMeta.TableID = HTtIDs.TblTimes;
TimesMeta.TableName = HTDB_Tables.TblTimes;
CustomersMeta.TableID = HTtIDs.TblCustomers;
CustomersMeta.TableName = HTDB_Tables.TblTimeCPAReport;
}
public static readonly int CustomersTid = CustomersMeta.TableID;
public static readonly string CustomersTblName = CustomersMeta.TableName;
public static readonly int TimesTid = TimesMeta.TableID;
public static readonly string TimesTblName = TimesMeta.TableName;
}
私の問題は、これらの 2 セットのテーブル ( Tid
& TblName
) の詳細をアプリケーションの残りの部分に公開する必要があることですが、アプリケーションが起動すると、SetTablesMetaDetails()
最後の 4 行が実行されません。このセクションを移動しようとしましSetTablesMetaDetails()
たが、正しい構文ではありません。エラーが発生します。
の割り当てを達成する正しい方法は何CustomersTid
ですか? (残りの 3 もオフコース)
public static readonly int CustomersTid = CustomersMeta.TableID;
これは私が見逃しているものです。上記の構造体と同じ方法で初期化する方法がわからないためです...できれば1つのメソッド呼び出しで