我被一个简单的变量赋值卡住了,让它对我来说有点复杂的唯一条件是我需要结构值是私有的,所以它们不会被修改
为了能够以安全的方式使用结构的值,我正在尝试使用公共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;
}
我的问题是我需要将这两组表(Tid
& TblName
)详细信息暴露给应用程序的其余部分,但是随着应用程序启动它调用SetTablesMetaDetails()
并且最后四行没有执行,我尝试将这一部分移入SetTablesMetaDetails()
,但它的语法不正确,我收到错误,
完成任务的正确方法是CustomersTid
什么? (也包括其余 3 个)
公共静态只读 int CustomersTid = CustomersMeta.TableID;
这就是我所缺少的,因为我不知道如何以与上面的结构相同的方式对其进行初始化......最好在一个方法调用中