본문 바로가기
반응형

C#20

Array.Copy 메서드 사용해서 배열 복사 C#에서 Array.Copy메서드는 아래와 같이 정의되어있다 public static void Copy(Array sourceArray, int sourceIndex, Array destinationArray, int destinationIndex, int length); 사용법: Array.Copy(원본배열,원본배열시작index, 복사할배열,복사할배열index,복사하려는 배열길이) using System; public class Test { public static void Main() { byte[] Original = {0x00,0x01,0x02,0x03,0x04}; byte[] Copy = new byte[5]; Array.Copy(Original,0,Copy,0,Original.Length); .. 2022. 3. 15.
[C#] var 암시적 데이터형 암시적 데이터 타입 var은 개발자가 명시적으로 선언하는 데이터 타입이 아닌 컴파일러에 의해 데이터 타입이 결정됨 var 사용할 수 없는 경우 1. 지역변수로만 사용 가능하고 클래스 멤버로는 사용 못함 2. null로는 초기화 불가 3. 연속적으로 데이터 초기화하는 경우 사용 못함 ex) var a = 10, b =20; float나 Long타입은 데이터 뒤에 형식을 지정해줘야 한다 나머지 타입은 암시적으로 데이터 형식이 지정된것을 알 수 있다 static void Main(string[] args) { var a = 20; var b = "a"; var c = true; var d = 'b'; var e = 0.001f; var f = 9999999999999999999L; Console.WriteLi.. 2022. 1. 28.
[C#] 변수 뒤에 물음표(?)는 Nullable Type 변수 뒤에 오는 ?를 쓰면 Null을 허용하지 않는 데이터형이 Null값을 허용한다 형식: 데이터형? 변수명; ex) int? var1; bool var2 = null; 값이 두개 밖에 없는 bool 타입은 true 또는 false만 허용하는데 ?를 사용하면 null값도 선언할 수 있다. 주로 null 값이 포함된 데이터 베이스 값을 처리할 때 에러를 방지하기 위해 사용한다 - var1 변수는 True로 var2는 Null로 아무것도 출력 되지 않는다 var2는 ture,false,null값을 허용하기 때문에 var1을 대입할 수 있지만 var1은 true,false 값만 다룰 수 있기 때문에 null이 포함된 var2를 대입할 수 없다 HasValue 속성 값이 있으면 true / 값이 없으면(null.. 2022. 1. 27.
C#기초 - 접근 제한자 (public vs private),(Getter,Setter 사용법) 접근 제한자 - 클래스, 메서드, 변수에 대한 접근 범위를 제한하는 키워드 1. private 접근제한자 => 자신의 클래스 내에서만 접근이 가능하고, 다른 외부 클래스에서는 접근이 불가능하도록 제한 (주로, 멤버변수에 private 접근제한자를 사용하여 값을 변경하지 못하도록 제어) 2. public 접근제한자 => 모든 클래스에서 접근이 가능(접근 제한이 없음) (주로, 멤버메서드에 public 접근제한자를 사용하여 누구나 접근하도록 제어) Getter/Setter 정의 클래스 내에서 멤버변수는 주로 private 접근제한자를 통해 외부에서 접근을 금지시킴 => 따라서, 별도의 메서드(Getter/Setter)를 정의하여 멤버변수 값을 대신 접근하도록 한다. 모.. 2021. 5. 27.
C# 기초 - 레퍼런스, 생성자 this 1. 레퍼런스 this - 자기 자신의 인스턴스 주소가 자동으로 저장되는 참조 변수(레퍼런스 변수) - 메서드(또는 생성자) 내에서 로컬변수와 멤버 변수(인스턴스 변수)의 이름이 같을 경우 - 멤버변수를 가리키기 위해 사용하는 키워드 - 동일한 클래스 내의 this 키워드를 사용하면 인스턴스마다 다른 주소를 가리키게 됨 this.멤버변수명 ex) using System; namespace Test { public class Program { static void Main(string[] args) { // Student 인스턴스 생성, 이름 : 홍길동, 나이 : 20 출력 Student s = new Student(); s.name = "홍길동"; s.setName("홍길동"); // this.name .. 2021. 5. 15.
C# 메서드 사용(3) - 메서드 오버로딩(Method Overloading) 메서드 오버로딩(Method OverLoading) /메서드 다중 정의 - 동일한 이름의 매개변수(파라미터)가 다른 메서드를 여러 개 정의하는 것 - 기본적으로 메서드는 변수와 마찬가지로 이름(식별자)이 중복되면 안 되지만, 매개변수의 타입이나 개수를 달리하면 이름이 같더라도 구분이 되므로 하나의 식별자로 여러 개의 메서드를 호출할 수 있다 [메서드 오버로딩 작성 규칙] 1. 메서드 이름이 동일 2. 매개변수(파라미터) 목록이 반드시 달라야 한다 : 매개변수 개수 또는 매개변수 타입이 달라야 한다 (즉, 호출하는 시점에서 메서드를 구분할 수 있어야 한다) 3. 리턴 값은 오버 로딩과 무관 (리턴 값이 달라도 매개변수가 동일하면 오버 로딩이 아니다) => 동일한 이름의 메서드를 호출하는 시점에서 구분할 수.. 2021. 2. 21.
C# 메서드 사용(2) - 매개변수전달:선언 기본형 변수, 참조형 변수 메서드 호출 시 변수 값을 전달하면 변수 내의 값을 복사해서 전달하게 됨 1. 기본형 변수를 전달했을 경우(Pass by Value 방식 = 값에 의한 전달) :변수 값(실제 데이터)을 복사하여 전달하므로, 메서드 내에서 값을 변경하더라도 원본 데이터에는 아무런 영향이 없다 :기본 데이터 타입 8가지를 전달하는 경우 2. 참조형 변수를 전달했을 경우(Pass by Reference 방식 = 참조(주소)에 의한 전달) :변수 값(실제 데이터가 있는 곳의 주소 값)을 복사하여 전달하므로 메서드 내에서 주소 값에 접근하여 값을 변경하면 원본 데이터에 영향이 있다. :기본 데이터 타입을 제외한 나머지를 전달하는 경우(배열, 인스턴스 등) ex1) 기본형 변수 class VariableTest { public v.. 2021. 2. 17.
C# 메서드 사용(1) - 인스턴스 변수, 로컬변수 선언 using System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { } } } String[] args 변수: 메서드 내에서 선언되었으므로 로컬 변수 또는 메서드 파라미터 내에서 선언되었으므로 파라미터 변수라고 함 main() 메서드가 끝나면 args 변수도 제거됨 class VariableType { int instanceMemberVariable; public void method1() { int localVariable = 10; Console.WriteLine(instanceMemberVariable); // 인스턴스 변수 접근 가능 Console.WriteLine(localVariable); // 자신의 메.. 2021. 1. 13.
C# 메서드 정의(2) 5. 매개변수가 2개 이상인 메서드 => 메서드 리턴 타입은 하나만 명시해야 하지만, 매개변수는 복수개를 전달할 수 있으며, 타입도 무관하다. [예제 코드] static void Main(string[] args) { Console.WriteLine("Hello World 출력문"); String hello = "HelloWorld"; int i = 1; hello = HelloWorld5(i, hello); Console.WriteLine(hello); Console.WriteLine("=============================================="); // 참고! 배열 등의 데이터타입도 매개변수로 전달 가능 // 점수 5개(100, 50, 90, 70, 60)를 저장하는 배열 s.. 2020. 11. 4.
반응형