2014-12-01 40 views
-2

我有一個項目在C#winforms中,與一個文件稱爲:PublicSettings.cs(此文件是在一個文件夾中稱爲:類),我有一個變量。使用變量從另一個文件.cs

現在,我想從同一個項目中的其他文件使用該變量。

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; 
     } 
    } 
} 

但沒有ConnStrPublicSettings,只是(Equals and ReferenceEquals)

這裏有什麼問題?

+0

問題是您試圖從靜態上下文中訪問非靜態變量 – DairyLea 2014-12-01 20:46:31

+0

此問題似乎是無關緊要的,因爲它是關於核心c#語法的,可以通過仔細閱讀文檔和教程輕鬆解決。 – walther 2014-12-01 20:47:35

+2

@walther,這是一個偉大的downvote原因..不是一個很好的理由。 – paqogomez 2014-12-01 20:48:12

回答

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

無法在靜態屬性中訪問「this」 – DLeh 2014-12-01 20:48:34

+0

@DLeh我已更新我的答案 – 2014-12-01 20:50:14

1

對於一個連接字符串,我要麼使用一個配置文件(的app.config),或使財產靜態只讀屬性(因爲在運行時通常沒有理由更改連接字符串):

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