首页 > 解决方案 > 使用文件对话框时如何修复 IDE0017

问题描述

我得到三个“建议”IDE0017 Object Initialization cab 被简化。

    private string dbSelect()
    {
        // This is the User File Name Selection
        OpenFileDialog openThis = new OpenFileDialog();
        openThis.DefaultExt = "sqlite";
        openThis.Filter = "SQLite Databases|*.sqlite";
        if (openThis.ShowDialog() == DialogResult.OK)
        {
            return openThis.FileName;
        }
        return null;
    }


    public bool openDatabase()
    {
        OpenFileDialog openThis = new OpenFileDialog();
        openThis.DefaultExt = "sqlite";
        openThis.Filter = "SQLite Databases|*.sqlite";
        if (openThis.ShowDialog() == DialogResult.OK)
        {
            m_dbConnection = new SQLiteConnection("Data Source=" + openThis.FileName + ";Version=3;");
            m_dbConnection.Open();
            return true;
        }
        return false;
    }


   public bool createDatabase()
    {
        SaveFileDialog createThis = new SaveFileDialog();
        createThis.DefaultExt = "sqlite";
        createThis.Filter = "SQLite Databases|*.sqlite";

        if (createThis.ShowDialog() != DialogResult.OK || createThis.FileName.Trim() == "")
        {
            return false;
        }

        m_dbConnection = new SQLiteConnection("Data Source=" + createThis.FileName + ";Version=3;");
        m_dbConnection.Open();

        return true;
  }

我如何改革这些以简化它们?他们一直很好,直到 VS2017...

而且,到目前为止,谷歌并没有真正提供帮助。

而且,我不确定我是否喜欢简化意味着将所有内容放在一行中的想法。

我被告知可读性很重要,而且一行中的所有内容都是杂乱无章的。

但是,我不想错过任何一个技巧......我想我可以把它关掉......

标签: c#visual-studio-2017openfiledialogobject-initialization

解决方案


Uppon 创建任何东西的新实例而不是做MyType myVariable = new MyType();,然后myVariable逐行设置每个属性,你可以做MyType myVariable = new MyType() {};,并且{}你可以设置你想要设置的属性。

例如SaveFileDialog,您可以这样做:

SaveFileDialog createThis = new SaveFileDialog() 
{
    DefaultExt = "sqlite", 
    Filter = "SQLite Databases|*.sqlite"
};

推荐阅读