반응형

C#

(C#) 중첩 클래스 nested class

아래 예제는 OuterClass 내부에 InnerClass가 중첩되도록 선언되어 있습니다. OuterClass에는 비공개 멤버 변수인 "outerName"이 있습니다. InnerClass에는 외부 클래서에 공개된 InnerMethod가 있습니다. Main 메소드에서 OuterClass 인스턴스를 생성하고 OuterMethod를 호출합니다. 그러면 InnerClass 인스턴스가 생성되고 InnerMethod가 호출됩니다. Outer method called Inner method called Outer name: Outer using System; namespace ConsoleApp3 { class OuterClass { private string outerName; public OuterClass(st..

C#/C#_기초강의 2023.05.25

(C#) 파일명에서 확장자, 파일명(확장자가 없는) 분리하기

다음 코드는 파일명에서 확장자를 분리하는 코드입니다. 확장자와 확장자를 제거한 파일명을 출력합니다. GetExtention() 메서드는 확장명에 점(.)까지 포함하고 있기 때문에 다시 결합할 때 점은 결합할 필요가 없습니다. string file = Path.GetFileNameWithoutExtension(filename); string ext = Path.GetExtension(filename); using System.IO; private void button2_Click(object sender, EventArgs e) { string filename = "abc.exe"; string file = Path.GetFileNameWithoutExtension(filename); string ext ..

C# 2023.05.24

(C#) 연산자 오버로딩

Point 클래스는 2D 공간에서 점을 나타내는 간단한 클래스로, X와 Y 좌표 값을 가지고 있습니다. 이 예제에서 Point 클래스는 X와 Y라는 두 개의 속성으로 정의를 했고, 생성자를 통해 X와 Y 값을 설정할 수 있습니다. 다음은 C#에서 Point 클래스와 해당 클래스의 연산자 오버로딩의 예제입니다. 연산자 오버로딩을 사용하여 Point 객체들 간의 덧셈과 뺄셈 연산을 수행할 수 있도록 구현하였습니다. + 연산자 오버로딩은 두 개의 Point 객체를 받아서 각각의 X 좌표와 Y 좌표를 더한 새로운 Point 객체를 반환합니다. - 연산자 오버로딩은 두 개의 Point 객체를 받아서 각각의 X 좌표와 Y 좌표를 뺀 새로운 Point 객체를 반환합니다. 프로젝트는 "Windows Forms 앱"으로..

C#/C#_기초강의 2023.05.23

(C#) Timer: 디지털 시계 만들기

c#의 timer 컨트롤을 이용해서 간단한 디지털 시계를 만들어 보겠습니다. Timer 컨트롤 일정한 시간 간격마다 Tick 이벤트를 발생시킵니다. Interval 속성 Tick 이벤트를 발생시키는 시간 간격을 설정합니다. 단위는 밀리초(millsecond. 1/1000초)입니다. 타이머 시작 타이머를 시작시키는 명령어는 Enabled 속성과 Start(), Stop() 메서드를 이용할 수 있습니다. timer1.Start(); 또는 timer1.Enabled = true; 타이머 멈춤 timer1.Stop(); 또는 timer1.Enabled = false; 다음 코드는 Timer 컨트롤을 이용해서 디지털 시계를 만드는 C# 코드입니다. 1. 프로젝트 생성: Windows Forms 앱(.NET Fra..

C# 2023.05.18

(C#) PictureBox에 이미지 출력하기, SizeMode 속성

PictureBox 컨트롤은 이미지를 출력할 때 사용합니다. SizeMode 속성을 이용해서 이미지 크기를 몇 가지 모양으로 출력할 수 있습니다. SizeMode 속성 Normal 원본 이미지를 컨트롤 크기 만큼만 보여줍니다. CenterImage 컨트롤 크기와 이미지 크기가 다를 경우, 원본 이미지의 중앙 부분을 기준으로 컨트롤 크기만큼만 보여줍니다. AutoSize 컨트롤 크기가 원본 이미지 크기로 자동으로 변경됩니다. 원본 이미지 전체를 그대로 보여줍니다. StretchImage 원본 이미지의 가로/세로를 확대 또는 축소해서 컨트롤에 꽉 채워서 출력합니다. Zoom 원본 이미지를 확대/축소해서 컨트롤에 보여줍니다. 원본 이미지의 가로/세로 비율이 그대로 유지됩니다. PictureBox에 이미지를 출..

C# 2023.05.18

(C#) PictureBox 이미지 좌우대칭 상하대칭

RotateFlip() 메서드를 이용해서 이미지를 좌우대칭 또는 상하대칭시킬 수 있습니다. 다음 코드는 버튼을 클릭하면 이미지를 좌우 또는 상하로 대칭시키고, 픽처박스에 이미지를 출력하는 C#코드 입니다. using System; using System.Drawing; using System.Windows.Forms; namespace WindowsFormsApp2 { public partial class Form1 : Form { Bitmap bmp; public Form1() { InitializeComponent(); bmp = (Bitmap)Bitmap.FromFile("c:\\temp\\kakao11.png"); pictureBox1.SizeMode = PictureBoxSizeMode.Auto..

C# 2023.05.17

(C#) DBConn.cs 클래스 이용: 뷰(view)를 데이터그리드뷰에 출력하기

DBConn.cs 클래스를 이용해서 SQL Server 또는 LocalDB에 저장된 뷰(View)를 데이터그리드뷰에 출력하는 예제입니다. 이 예제를 실행하기 위해서는 데이터베이스가 설치되어 있어야 합니다. 기타 실습을 위해 필요한 모든 내용은 이 블로그에 있으므로 검색해서 해결하면 됩니다. 참고 DBConn.cs https://coding-abc.kr/19 뷰 생성: (SSMS) 뷰(view) 생성하기 실습 1. 프로젝트 생성 Windows Forms 앱(.NET Framework) 2. 폼에 DataGridView 컨트롤 1개 추가, 버튼 1개 추가 3. DBConn.cs 클래스 추가 - 위의 DBConn.cs 링크 참고 4. 버튼에 코드 작성 using System; using System.Data;..

C# 2023.05.07

(C#) dynamic 동적 형식과 object 그리고 var 형식 비교

Dynamic 형식은 변수 및 해당 멤버에 대한 참조 사용이 컴파일 시간이 아닌 런타임에 형식이 결정됩니다. 이 형식은 Office Automation API와 같은 COM API, IronPython 라이브러리 등의 동적 API 및 HTML DOM(Document Object Model. 문서 개체 모델)에 대한 액세스에 사용될 수 있습니다. dynamic 형식의 대부분은 object 형식처럼 동작합니다. null이 아닌 모든 식은 dynamic 형식으로 변환될 수 있습니다. dynamic 형식은 컴파일 시간에만 존재하고 런타임에는 존재하지 않습니다. 다음 예제는 dynamic 형식의 변수와 object 형식의 변수를 비교한 것입니다. 컴파일 시간에 변수의 형식을 확인하려면 변수명 위에 마우스 포인터를..

C#/C#_기초강의 2023.05.05

(C#) 선택적 인수 Optional arguments

메서드, 생성자, 인덱서 또는 대리자를 정의할 때, 해당 매개 변수를 필수 또는 선택적으로 지정하게 할 수 있습니다. 호출시 필수 매개 변수는 반드시 인수를 사용해야 하지만 선택적 매개 변수에 대한 인수는 생략할 수 있습니다. 메서드, 생성자, 인덱서 또는 대리자 등을 정의할 때, 매개 변수에 기본값(default value)을 설정해서 기본값에 대한 인수가 전달되지 않은 경우에는 기본값이 사용되게 됩니다. 다음 예제의 OptionalArguments는 필수 매개 변수 1개, 선택적 매개변수 1개로 정의된 경우입니다. private void OptionalArguments(string name, int age=0) { listBox1.Items.Add("이름:" + name + ", 나이:" + age)..

C#/C#_기초강의 2023.05.01

(C#) 명명된 인수 named arguments

메서드(method)를 호출할 때, 매개변수의 목록은 순서대로 전달됩니다. 그러나 순서를 일치시키지 않고 이름을 지정해서 인수를 전달할 수 있습니다. 이를 명명된 인수(named arguments)라고 합니다. 이 방법은 메서드 뿐만 아니라 인덱서, 생성자 및 대리자에 사용할 수 있습니다. 예를 들어, AddListBox 메서드가 다음과 같이 정의되어 있다고 가정해 보겠습니다. private void AddListBox(string name, int age) { listBox1.Items.Add("이름:" + name + ", 나이:" + age); } 위 메서드는 다음과 같이 인수의 순서를 일치시켜서 호출하게 됩니다. AddListBox("홍길동", 22); 그러나 메서드의 인수에 있는 이름을 지정하면..

C#/C#_기초강의 2023.05.01
반응형