반응형

Programming 47

C# 생성자 오버라이딩 , this, base

C# 생성자 오버라이딩 public class Employee { public int Salary; public Employee() { Salary = 0; } public Employee(int annualSalary) { Salary = annualSalary; } public Employee(int weeklySalary, int numberOfWeeks) { Salary = weeklySalary * numberOfWeeks; } } 클래스에서 생성자 오버라이딩 하는 방법은 위와 같이 매게 변수를 추가 하여 할 수 있습니다. 만약, 반복 되는 작업이 싫다고 하면 오버라이딩 한 생성자에서 다른 생성자를 호출 할 수 있습니다. public Employee(int weeklySalary, int num..

Programming 2020.11.27

C#에서 string 문자열 중간에 변경 교체 하기.

C#에서 string 문자열 중간에 변경 교체 하기. string은 기본적으로 변경 할 수 없게 되어 있어서 string[i] = 'x'; 이런 식으로 교체가 불가능 하고 이렇게 하면 에러가 발생 한다. 다음은 StringBuilder를 사용 하여 string 문자열을 교체 하는 방법. string의 확장 멤소드로 작업 해서 그냥 string.ReplaceAt(...) 해서 사용 할 수 있다. 코드 ) using System.Text; public static class Extensions { public static string ReplaceAt(this string input, int index, char newChar) { if (input == null) { throw new ArgumentNul..

Programming 2020.11.20

C# DateTime Now에서 날짜만 가져 오기

DateTime.Now 하면 현재 날짜와 시간을 얻어 올 수 있다. (년 월 일 시간 분 초 ) 이 중에 시간은 0(자정)으로 초기화 시키고 날짜만 얻어 오고 싶으면 아래 예제 처럼 DateTime변수.Date 함수를 사용 하면 된다. using System; public class Example { public static void Main() { DateTime date1 = new DateTime(2008, 6, 1, 7, 47, 0); Console.WriteLine(date1.ToString()); // Get date-only portion of date, without its time. DateTime dateOnly = date1.Date; // Display date using short..

Programming 2020.07.17

Androi NDK를 이용한 C++ 라이브러리 char 형 문제 해결 signed char 와 unsigned char 형에 대한 지정 - Android Studio

Androi NDK를 이용한 C++ 라이브러리 char 형 문제 해결 signed char 와 unsigned char 형에 대한 지정 - Android Studio 오늘 Androi NDK를 이용한 C++ 라이브러리를 작업 하다가 char 형에 대한 문제가 발생 했다. gcc / visual studio 모두 char의 기본 값은 singed char형이다. 그러나 Android NDK에서는 char의 기본 값이 unsigned char형이라고 한다. 즉, 마이너스(-) 값이 없이 최소 값이 0이라는 점. 이런 차이 때문에 데이터를 카피 해서 사용 할 때 문제가 발생 할 수 있다. 그렇다고 소스의 모든 char 선언을 signed char로 바꿀 수도 없는 노릇이다. 해결책은 간단 하다. 빌드 옵션에 ..

Programming 2020.05.27

C# List 배열 회전 시키기 - Right Rotation - Unity3D

C# List - Right Rotation - Unity3D 간혹 List 를 사용 하다가 환영큐 처럼 특정 요소 이후로 모든 요소를 재배치 시킬 일이 있다. 예) 1 2 3 4 5 -> Rotate in place (3) -> 3 4 5 1 2 이럴때 다음의 Extension Method를 사용 하면 된다. public static void Rotate(this List src, T item) { int index = src.LastIndexOf(item); src.Rotate(index); } public static void Rotate(this List src, int index) { int count = src.Count - index; for (; count > 0; count--) { T ..

Programming 2020.03.27

C# - class 객체 배열 new 할당 후 배열 요소 null 접근 문제 해결

1. 클래스 객체 배열 선언 후 접근 문제 Class 객체를 배열로 생성 하고 사용 하려면 값 타입 배열 생성과 다르게 배열 요소에 접근 하게 되면 null 에러가 발생 한다. class SomeClass { public int Value = 0; } SomeSomeClass[] aaa = new SomeClass[10]; aaa[0].Value = 99; // 에러 발생 null exception 여기에서 aaa[0].Value 와 같이 0번째 배열에 접근 하려면 null 포인터 예외가 발생 한다. SomeClass[] aaa = new SomeClass[10]; for (int i = 0; i < aaa.Length; i++) { aaa[i] = new SomeClass(); } aaa[0].Valu..

Programming 2020.03.14

C# - Enum 형의 내부 형식 변경과 유용한 메소드 - byte

1. Enum 타입의 내부 기본 타입 변경 Enum 변수를 선언 할 때 기본적으로 데이터 형이 Int32 형으로 선언 된다. 메모리 사용을 조금이라도 줄일기 위해서 숫자가 크지 않는 경우에는 byte를 사용 하고 싶을 때가 있다. Enum 형의 기본 데이터 형을 변경 하려면 다음과 같이 하면 된다. public enum Days : byte { Saturday, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday }; 2. Enum 타입의 내부 기본 타입 얻기 Enum.GetUnderlyingType(enumType); static void DisplayEnumInfo(Enum enumValue) { Type enumType = enumValue.GetType(..

Programming 2020.03.13

Smart Card에서 Card Number 읽어 오기

스마트카드 ( IC Smart Card ) 에서 카드 번호를 읽어 오는게 필요 해서 카드 리더기도 사고 이것 저것 유틸리티 프로그램도 알아 보고 했는데 정보도 많이 없고 스마트 카드 구조가 복잡 해서 계속 에러만 리턴 하고 몇일이 지났다. 우선 스마트 카드와의 통신을 위한 명령어에 대해 정의 한 표준 문서를 살펴 볼 필요가 있다. 1. ISO Standard 파악 ISO-7816-4 : 1~9 Annex: A ~ F 까지 읽어 보자. 접촉형 스마트 카드에 대한 명령어 표준. ( 공식 문서는 돈 주고 사서 봐야 하는 것 같으니 패스 하고 여기 사이트를 참고 ) https://cardwerk.com/iso-7816-part-4 ISO 7816 part 4 smart card standard APDU comm..

Programming 2020.02.19

오픈JDK 설치 및 환경 설정 ( OpenJDK )

Oracle Java - JDK 설치 하려다 가입도 해야 하고 상업용은 유료로 사용 해야 한다고 해서 검색 결과 무료버전 발견. 1. 다운로드 : https://jdk.java.net/ JDK Builds from Oracle jdk.java.net 에 들어가서 Ready For Use : 에서 최신버전 클릭 -> 중간 쯤 Windosw/64 항목 : Zip 파일 클릭 하여 다운로드 및 압축 해제 ( jdk-13.0.2 ) 압축 해제된 폴더 ( jdk-13.0.2 )를 특정 폴더로 복사 ( C:\Program Files\jdk-13.0.2 ) 2. 시스템 변수 설정 : 탐색기 -> 컴퓨터 -> 속성 -> 고급 시스템 설정 -> 환경 변수 -> 버튼 클릭 -> 시스템 변수 항목에서 -..

Programming 2020.02.17

문자열 앞에 R의 의미 - Raw String Literal

원시 문자열 리터럴 ( Raw String Literal ) : 원시 문자열 리터럴 R을 사용 하면 문자열에 특수문자( 이스케이프 문자 )를 사용 하지 않고 직관적으로 원하는 문자열을 보는 그대로의 문자열로 만들 수 있다. 사용법: R"구분자( 사용 하고자 하는 문자열 )구분자" 예) const char * R0 = R"( Hello World )"; 이 것은 const char *R0= "\nHello\nWorld\n"; 와 같은 의미 이지만 위의 것이 훨시 가독성이 좋다. ( 단, C++11 이후 부터 사용 가능. 이전 버전에서는 컴파일 에러 발생 함. ) MSDN의 자세한 설명 참고: https://docs.microsoft.com/ko-kr/cpp/cpp/string-and-character-li..

Programming 2020.02.06
반응형