제니노트

Class,Method,클래스 라이브러리 [C#] 본문

C#/C#

Class,Method,클래스 라이브러리 [C#]

yangjennie 2023. 9. 23. 06:00
반응형

메인 클래스에서 다른 클래스를 사용해보기 

 

일단 명명 규칙에 대해서 배웠다.

자바의 변수 선언은 int num = 0;

int tempNumber = 0;

이라면

 

C#의 변수 선언은 var num = 0;

var tempNumber = 0;

여기까지는 동일하다.

 

자바의 경우 메소드(Method)라고 하고

C#은 메서드라고 한다.

이건 MSDN(Microsoft Developer Network) 즉, C# 공식 문서상에 번역된 내용이 메서드라서

메서드라고 부르는 것이다.

 

자바의 경우 public void hello() 

public void helloHi() 

 

C#이 경우 public void Hello() 

public void HelloHi()

처럼 카멜케이스를 따른다.

 

메서드의 기본 선언 방식은

접근제한자 반환타입 메서드이름()

{

}

꼴이다.

 

 

 

먼저 같은 프로젝트 내에 Calc.cs 클래스를 만들어주었다.

해당 클래스는 private 타입으로 만들어주었다.(public도 가능!)

 

해당 Clac의 메서드를 다른 클래스에서도 접근 할 수 있도록 하려면 

public 접근 제한자를 사용해주면 된다.

//다른 클래스에서도 접근 할 수 있도록 
		public void PrintHello()
		{
			Console.WriteLine("Hello");
		}

 

매개변수를 사용하고 싶으면

public int Plus(int num1, int num2)
		{
			return num1 + num2;
		}

 

Calc.cs

using System;
namespace CSharpStudy
{
	class Calc
	{
		//Naming Convention
		//명명 규칙

		//자바 메소드 (Method)

		//C# 메서드 MSDN Microsoft Developer Network
		//C# 공식 문서상에 번역된 내용이 메서

		//자바 변수 선언 : int num = 0;
		//int tempNumber = 0;
		//메서드 선언 : public void hello()
		//public void helloHi()

		//C# 변수 선언 : var num = 0;
		//var tempNumber = 0;
		//메서드 선언 : public void Hello() 카멜케이스
		//public void HelloHi()

		//메서드 기본 선언 방식
		//접근제한자 반환타입 메서드 이름(){}
		//Public private ,,,


		//다른 클래스에서도 접근 할 수 있도록 
		public void PrintHello()
		{
			Console.WriteLine("Hello");
		}

		public int Plus(int num1, int num2)
		{
			return num1 + num2;
		}

		private void Hello2()
		{

		}

		internal void Hello3()
		{

		}


	}
}

 

Program.cs

//java의 Import 
using CSharpStudy;
using FirstLibrary;

namespace CSharpstudy  //자바의 package.. class가 똑같더라도 namespace가 다르면 구분됨 
{
    class Program
    {
        static void Main(string[] args)
        {
            Calc calc = new Calc();
            calc.PrintHello();
            Console.WriteLine(calc.Plus(10,20));

        }
    }
}

 

 

위의 클래스 두 개는 같은 솔루션 내에 있다.

다른 솔루션의 클래스를 사용하고 싶다면?!

 

일단 FirstLibrary라는 솔루션을 만들어주었다.

ClassLibrary 라는 속성으로 만들어주었다.

이는 DLL(동적 링크 라이브러리)을 만들어주는 것 

DLL이 뭐냐면 외부의 함수를 가져올 때 사용하는 것이다. 

호출 할 수는 있지만 내용은 볼 수 없다. 

 

FirstLibrary 솔루션에 FirstClass 클래스 파일을 만들어주었다.

namespace FirstLibrary;
public class FirstClass
{
    public void FirstClassPrint()
    {
        Console.WriteLine("안녕하세요. FirstClass입니다.");
    }
}

 

사용할 CSharpStudy 프로젝트에 FirstLibrary 를 아래 처럼 참조 시켰다.

 

//java의 Import 
using CSharpStudy;
using FirstLibrary;

namespace CSharpstudy  //자바의 package.. class가 똑같더라도 namespace가 다르면 구분됨 
{
    class Program
    {
        static void Main(string[] args)
        {

            FirstClass first = new FirstClass();
            first.FirstClassPrint();
        }
    }
}

using에 네임스페이스에 FirstLibrary를 추가해주고

그리고 이렇게 사용하면 된다 

 

이게 귀찮다면 인텔리젼스를 이용하도록 하자 

 

 

 

 

반응형

'C# > C#' 카테고리의 다른 글

MVC 패턴 - 모델 [C#]  (0) 2023.09.24
ASP.net? ASP.net core? [C#]  (0) 2023.09.23
Generic List , 사용자 정의 클래스 [C#]  (0) 2023.09.23
for문 [C#]  (0) 2023.09.23
while문 [C#]  (0) 2023.09.23
Comments