반응형

C#

(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

(C#) ref, out 참조로 인수 전달하기

메서드의 매개변수에 ref 키워드를 사용하면 값이 아니라 참조로 전달됨을 나타냅니다. 매서드의 매개 변수에 참조로 전달되는 또 하나의 키워드는 out입니다. ref와 out의 차이는 매개 변수를 호출하기 전에 ref는 반드시 변수의 값이 초기화 되어 있어야 하지만 out 키워드는 변수의 값을 초기화 할 필요가 없습니다. 즉, out 키워드는 매개 변수로 처리결과를 받기만 할 때 사용될 수 있습니다. 다음 예제는 매개변수에 out를 이용해서 처리 결과를 받는 예제입니다. void Add(int x, int y, out int z) { z = x + y; } private void button1_Click(object sender, EventArgs e) { int a = 1, b = 2, c; Add(a,..

C#/C#_기초강의 2023.04.30

(C#) ref 참조에 의한 호출(call by reference)

ref 키워드는 변수가 참조를 나타내거나 다른 개체의 별칭임을 나타냅니다. 매개변수에 ref 키워드를 사용하면 인수가 값이 아니라 참조로 전달됨을 나타냅니다. 호출하는 쪽의 매개변수에 ref를 사용하면, 호출된 메서드에서도 ref로 받아야 하며, 이 경우 ref로 전달된 매개변수를 통해서 호출할 쪽의 지역 변수의 값을 변경할 수 있습니다. 다음 예제는 두 개의 값을 교환하는 swap 메서드의 예입니다. void swap(ref int x, ref int y) { int temp = x; x = y; y = x; } private void button1_Click(object sender, EventArgs e) { int a = 10, b = 20; swap(ref a, ref b); listBox1.I..

C#/C#_기초강의 2023.04.30

(C#) params 가변 개수의 메서드 매개변수 사용하기

params 키워드를 사용해서 메서드에 가변 개수의 인수 사용할 수 있습니다. 매개변수에 params가 사용되면 추가 매개 변수가 허용되지 않으며, params 키워드 하나만 메서드 선언에 사용할 수 있습니다. 또한 매개 변수는 1차원 배열이어야 합니다. 다음 코드는 매개 변수에 params 키워드를 사용한 C# 코드의 예제입니다. private int Add(params int[] list) { int sum = 0; for (int i = 0; i < list.Length; i++) sum += list[i]; return sum; } private void ParamsMethos(params object[] list) { for (int i = 0; i < list.Length; i++) listB..

C#/C#_기초강의 2023.04.29

(C#) 메서드 오버로딩 method overloadding

메서드 오버로딩은 객체지향 프로그램에서 매개변수의 개수를 달리하거나 타입을 다르게 해서 같은 이름의 메서드를 여러개 정의해서 사용할 수 있게 하는 개념입니다. 아래의 Calculator 클래스에는 같은 이름의 Add 메서드가 3개 정의되어 있습니다. 메서드 오버로딩 매개 변수의 개수를 다르게 한다. 매개 변수의 타입(type)을 다르게 한다. (주의) 메서드의 반환형을 다르게 해서 오버로딩을 구현할 수 없다. class Calculator { public int Add(int a, int b) { return a + b; } public int Add(int a, int b, int c) { return a + b + c; } public double Add(double a, double b) { ret..

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