코딩을 하면서 이것은 꽤 쓰이겠다, 싶은것은 코딩팁으로 올릴까 합니다!. 기본적으로 배우는 내용이지만, 꽤 쓰는데가 많은경우, 조금조금씩 모으면 저 만의 공책이 될것 같아요.
일기장을 만드는 도중, 폼을 여러개 (== 클래스 여러개) 를 만들고 사용하게 되더군요. 그런데 폼2에서도 폼1에서도 동일한 URL로, 같은 DB를 같은 계정으로 사용하니 똑같이 넘기면 메모리도 하나만 차지하고, 더 좋을 것 같다는 생각이 들었습니다.
그리고 마침 자바 수업에서 배웠던 클래스의 '생성자' 의 존재를 기억해냈죠. C#에서도 동일하게 사용 할 수 있을 것 같았습니다.
공식 Code.
public class Person
{
private string last;
private string first;
public Person(string lastName, string firstName)
{
last = lastName;
first = firstName;
}
}
MS 에서 제공하는 C# 관련 도움말 입니다. Person 이라는 클래스를 정의 하며, 그 내부에 같은 이름 Person 을 가지는 메소드를 만듭니다. 반환형은 존재하지 않네요. 이것이 생성자 입니다. 클래스와 이름은 같으며 반환형은 존재하지 않습니다. 만들 때는 public 이여야 합니다. 클래스 객체화는 다른 클래스에서 하니까요.
저기에서의 생성자의 역할은 무엇일까요? last 와 first의 초기값을 지정 해주는 것입니다. 네, 클래스가 생성될때 하여야 하는 것이 무엇일까요. 일반적으로는 초기값 지정이지요.
제가 생각했을때 보통 생성자의 역할은 클래스를 사용할때 필요한 초기값을 지정 해주는 역할입니다.
저의 Code.
public partial class Form2 : Form
{
MySqlConnection mSQLconn;
public Form2(MySqlConnection mySQLconn)
{
this.mSQLconn = mySQLconn;
InitializeComponent();
}
}
저는 실제로, 폼2를 생성 하면서 여기서 Select 문을 사용하기 위해 MySqlConnection 형태를 가지는 mySQLconn 을 매개변수로써 받아옵니다.
다른것은 위의 코드와 차이가 없지만, 하나 다른점이 있는데 초기화의 방법입니다. this.mSQLconn = mySQLconn 으로 초기화를 해주었습니다. 제가 배웠을때는 되도록 초기화는 this를 사용하여 하는것이 좋다 라고 배웠습니다. 첫번째 사용 용도는 전역 변수이냐 지역 변수이냐 구별 할때 주로 사용하는 변수 입니다.
두번째 용도는 생성자의 오버로딩을 호출할때 인데 이것은 또 다음에 적을 일이 있을 것 같습니다.
this 는 자신이 소속된 클래스의 주소값을 가지고 있는 지역 변수입니다. (뜯어보면 private가 붙어있을 것 같네요.) this. * 이라고 한다면, 이 클래스의 변수나 메소드를 사용 할 수 있습니다.
거의 반강제로 사용 해야 할때가 있는데, 클래스 안의 메소드에서 지역 변수와 전역변수가 이름이 같을 때 입니다.
위 코드에서, MySqlConnection mSQLconn; 가 아니라 MySqlConnection mySQLconn 이라고 한다면, 생성자 안에서 컴퓨터는 mySQLconn이 지역 변수인지 전역변수인지 모릅니다. 그래서 this를 붙여주면, 전역변수라고 명시 하게 되는것이죠
'SoftwareDo > C#' 카테고리의 다른 글
[WPF, XAML] 로그인 UI 만들기 (0) | 2020.06.08 |
---|---|
입사(?) 후의 진짜 맡은 '일' DID Uploader (0) | 2020.04.20 |
새로운 프로젝트, 자료구조 나르샤 (0) | 2019.10.24 |
일기장 프로그램 근황 (0) | 2019.10.09 |
첫번째 프로젝트. C#으로 일기장 만들기 (0) | 2019.09.02 |