相关疑难解决方法(0)

静态索引器?

为什么C#中不允许使用静态索引器?我认为没有理由不允许他们这样做,而且他们可能非常有用.

例如:

public static class ConfigurationManager 
{
        public object this[string name]
        {
            get => ConfigurationManager.getProperty(name);
            set => ConfigurationManager.editProperty(name, value);
        }

        /// <summary>
        /// This will write the value to the property. Will overwrite if the property is already there
        /// </summary>
        /// <param name="name">Name of the property</param>
        /// <param name="value">Value to be wrote (calls ToString)</param>
        public static void editProperty(string name, object value) 
        {
            var ds = new DataSet();
            var configFile = new FileStream("./config.xml", FileMode.OpenOrCreate);
            ds.ReadXml(configFile);

            if (ds.Tables["config"] == null)
                ds.Tables.Add("config"); …
Run Code Online (Sandbox Code Playgroud)

.net c# static indexer static-indexers

114
推荐指数
3
解决办法
4万
查看次数

自定义使用索引器[]

我想创建一个与ASP.Net Session类似的对象.

假设我将此对象称为mySession,我想在你做的时候这样做

mySession["Username"] = "Gav"
Run Code Online (Sandbox Code Playgroud)

如果它不存在,它将把它添加到数据库表中,如果存在则更新它.我可以编写一个方法来执行此操作但不知道如何在使用索引器语法([])时触发它.我从来没有用索引器构建一个做这样的事情的对象.

在任何人说任何事情之前,我知道ASP.Net会话可以保存到数据库,但在这种情况下,我需要一个稍微简单的自定义解决方案.

以这种方式使用索引器的任何指针或示例都会很棒.

谢谢

c# asp.net

8
推荐指数
2
解决办法
4828
查看次数

你如何使用字符串作为索引?

早上.

问题:
我有一个名为Reports的类.两个构造函数.一个不允许参数,另一个是字符串数组.字符串数组应该是他们想要显示的报告.我想做的是以下内容:

string strSQL = this.Queries[strReportName];
Run Code Online (Sandbox Code Playgroud)

我觉得这是可能的,因为在我正在使用的dataGridView中,我通过以下方式得到列索引:

int nColumnIndex = dgvParts.Columns[strColumnName].Index;
Run Code Online (Sandbox Code Playgroud)

这两个示例都使用字符串来确定它们检索的数组中的值,但我不确定如何执行此操作.谁能给我一些帮助?任何和所有的帮助表示赞赏.

对于编辑和mods:是的,报告部分与我关于动态加载DLL的其他帖子松散地联系,但我想保持另一个开放.我的老板和我决定短期,我们只有一个DLL,一切都是硬编码的,但从长远来看,我们希望动态删除DLL作为报告,所以请不要将其标记为重复.我计划本周末试图在另一个线程中实现给我的方法.谢谢.

编辑 - 问题的第2部分:好的,这是我现在的课程:

public class Queries
{
  #region Report Queries
    #region Missing Code
      string strMissingCode = "SELECT * FROM PARTS WHERE CODE IS NULL OR CODE = ''";
    #endregion
  #endregion
}
Run Code Online (Sandbox Code Playgroud)

我想把它改成这样的东西:

public class Queries : Dictionary<string, string>
{
}
Run Code Online (Sandbox Code Playgroud)

但我不希望他们必须使用构造函数来实例化它.我想要静态排序,所以我可以运行这样的代码:

class Reports
{
  private List<ReportRecord> _lstRecrods = new List<ReportRecord>();
  public List<ReportRecord> Records { get { return _lstRecords; } }

  public Reports(string[] strDisplayedReports)
  {
    foreach …
Run Code Online (Sandbox Code Playgroud)

c# string indexing

7
推荐指数
2
解决办法
2万
查看次数

标签 统计

c# ×3

.net ×1

asp.net ×1

indexer ×1

indexing ×1

static ×1

static-indexers ×1

string ×1