2014-12-01 3 views
-2

나는 변수가있는 PublicSettings.cs이라는 파일 (이 파일은 Class라는 폴더 안에 있습니다)과 함께 C# winforms에 프로젝트를 가지고 있습니다.다른 파일의 변수를 사용합니다 .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; 
      } 
     } 
    } 
} 

내가 파일에 변수 ConnStr를 사용하려면 : frmLogin.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, 그냥 (동등 및 참조 동등 물)

무엇이 잘못 될 수 있습니까?

+0

정적 컨텍스트에서 정적 변수가 아닌 변수에 액세스하려고합니다. – DairyLea

+0

이 질문은 핵심적인 C# 구문에 관한 것이므로 문서 및 자습서를주의 깊게 읽어 보면 쉽게 해결할 수 있습니다. . – walther

+2

@walther, 그게 위대한 downvote 이유. 그다지 가까운 이유는. – paqogomez

답변

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

+0

@DLeh 내 답변을 업데이트했습니다 –

1

, 나는 구성 파일 (의 app.config)을 사용하거나 재산에 정적을 만들 것 중 하나 읽기 전용 속성 (런타임에 연결 문자열을 변경할 이유가없는 경우가 많기 때문) :

class PublicSettings 
{   
    public static string ConnStr 
    { 
     get 
     { 
      return "Connection"; 
     } 
    } 
} 
관련 문제