【发布时间】:2019-09-17 11:28:48
【问题描述】:
我有以下课程
public class OracleStoredProcedures
{
public static readonly string GET_ALL_PRODUCTS_BY_ID = $"{PRODUCT_PACKAGE_NAME}.GET_ALL_PRODUCTS_BY_ID";
public static readonly string GET_LATEST_PRODUCTS = $"{PRODUCT_PACKAGE_NAME}.GET_LATEST_PRODUCTS";
public static readonly string GET_ADDRESS_BY_ID = $"{ADDRESS_PACKAGE_NAME}.GET_ADDRESS_BY_ID";
private static readonly string PRODUCT_PACKAGE_NAME = "DATABASE.PRODUCT_PKG";
private static readonly string ADDRESS_PACKAGE_NAME = "DATABASE.ADDRESS_PKG";
}
我在尝试调用该字段时遇到问题
var getProducts = OracleStoredProcedures.GET_LATEST_PRODUCTS;
所以,我进行了谷歌搜索并在这里找到了同样的问题Order of Static Constructor/Initializers in C#
在我的例子中,这些只是包和存储过程,没有做任何复杂的事情。我有多个包和存储过程,我只举了两个作为示例。
那么,从代码库中的任何位置编写和调用这些的最佳方法是什么?
【问题讨论】:
-
你说你有一个“问题”并且有“问题”。介意告诉我们问题是什么?
-
为什么最后两个字段(
PRODUCT_PACKAGE_NAME和ADDRESS_PACKAGE_NAME)必须定义为static readonly,而它们只能设置为const并一路解决您的问题?跨度> -
@haim770 这解决了我遇到的问题。但你能解释一下吗?
-
只需更改字段的顺序.....首先声明这些:PRODUCT_PACKAGE_NAME,ADDRESS_PACKAGE_NAME.....在这种情况下似乎顺序很重要
标签: c#