使用来自另一个文件.cs的变量

时间:2014-12-01 20:44:30

标签: c#

我在c#winforms中有一个项目,名为PublicSettings.cs的文件(此文件位于名为Class的文件夹中),我有一个变量。

现在,我想在同一个项目中的另一个文件中使用该变量。

PublicSettings.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LVSetup.Class
{
    class PublicSettings
    {        
        private string _ConnStr = "Connection";

        public string ConnStr
        {
            get
            {
                return this._ConnStr;
            }
            set
            {
                this._ConnStr = value;
            }
        }
    }
}

我想在文件中使用变量ConnStrfrmLogin.cs

frmLogin.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using LVSetup.Class;

namespace LVSetup
{
    public partial class frmLogin : Form
    {
        public frmLogin()
        {
            InitializeComponent();
        }

        private void btnEnter_Click(object sender, EventArgs e)
        {            
            string a = PublicSettings.ConnStr;
        }
    }
}

ConnStr内没有PublicSettings,只有(等于和参考等值)

这里可能有什么问题?

2 个答案:

答案 0 :(得分:5)

您需要将此字段设置为静态,以便在不创建类实例的情况下访问它。或者创建和实例。什么套件最好取决于您想要应用于此类的逻辑以及以后如何使用它。

实例方法

private void btnEnter_Click(object sender, EventArgs e)
{            
    var settings = new PublicSettings();
    string a = settings.ConnStr;
}

静态字段方法

class PublicSettings
    {        
        private static string _ConnStr = "Connection";

        public static string ConnStr
        {
            get
            {
                return _ConnStr;
            }
            set
            {
                _ConnStr = value;
            }
        }
    }

答案 1 :(得分:1)

对于连接字符串,我要么使用配置文件(app.config),要么将属性设置为静态只读属性(因为在运行时通常没有理由更改连接字符串):

class PublicSettings
{        
    public static string ConnStr
    {
        get
        {
            return "Connection";
        }
    }
}