전체 글 384

[C# 교과서] 53. 테스트 프로젝트와 단위 테스트

자동 테스트 에러를 쉽게 찾고 수정 가능 직접 하나씩 테스트하는 것보다 아주 빠르게 많은 수의 테스트를 진행 작성한 코드 검증 MSTest MSTest : 마이크로소프트 공식 단위 테스트 프로젝트 NUnit : JUnit 영향을 받은 오픈 소스 단위 테스트 프로젝트 xUnit : 닷넷 전용 오픈 소스 단위 테스트 프로젝트 Assert 클래스의 주요 API Assert.IsTrue() : 매개변수 값이 true이면 테스트 통과 Assert.IsNull() : 매개변수 값이 null이면 테스트 통과 Assert.AreEqual() : 매개변수 값 2개가 같으면 테스트 통과 Assert.AreNotEqual() : 매개변수 값 2개가 다르면 테스트 통과

C#/C# 교과서 2023.02.08

[C# 교과서] 52. 클래스 라이브러리와 닷넷 스탠다드

클래스 라이브러리 프로젝트 윈도 환경에서 콘솔 앱 프로그램으로 컴파일 된 결과물은 일반적으로 *.exe 파일 하지만 클래스 라이브러리 프로젝트를 사용하면 컴파일된 결과물이 *.dll 파일 DLL 파일을 동적 링크 라이브러리(dynamic link library)라고 함 단독으로 실행하지 않고 다른 프로그램에서 참조해 사용할 수 있는 구조 어셈블리 DLL 파일은 어셈블리로 표현 어셈블리는 프로그래밍 학습용 자동차 세계에서는 교체 가능한 부품들을 의미 완성된 조각 하나의 기능이 모두 어셈블리 C#에서 컴파일된 소스 코드의 결과를 닷넷 어셈블리(.Net Assembly)라고 함

C#/C# 교과서 2023.02.08

[C#] 백준 알고리즘 4344번, 평균은 넘겠지

while using System; namespace codingstudy { class Program { static void Main() { int c = int.Parse(Console.ReadLine()); // 테스트 케이스 int[] scores; double avg; int cnt; while (c --> 0) { // 첫번째 요소를 제외한 나머지 문자열들을 배열로 추출 scores = Array.ConvertAll(Console.ReadLine().Split()[1..],int.Parse); // Average() 메서드로 배열의 평균 구하기 avg = scores.Average(); // Count() 메서드로 배열의 건수 구하기 // 람다식으로 scores배열에서 개별 점수가 평균보다 ..

C#/C# (백준) 2023.02.07

[C# 교과서] 50~51. 동적형식, 튜플

동적형식 dynamic 키워드 C#에서는 dynamic 키워드를 사용하는 동적 형식을 제공 컴파일 타임에 형식이 지정되는 프로그램은 편함. 바로 int, string 형으로 변수를 선언한 후 해당 값을 사용하면 됨 런타임 형식이 지정되는 프로그램이 필요할 수 있음. 이때는 dynamiic 키워드를 사용하여 변수를 선언 dynamic 키워드는 데이터 형식 자리에 오지만, dynamic은 데이터 형식이 아님 var 키워드와 비슷하나 컴파일할 때 데이터 형식을 결정하는 var와 달리, dynamic 키워드는 런타임할 때 데이터 형식을 결정 모든 데이터 형식을 선언하는 자리에는 dynamic 키워드를 사용 가능 동적 형식은 다른 동적 언어와 통신에 유용 유일한 단점은 비주얼 스튜디오 인텔리센스의 도움을 받을 수..

C#/C# 교과서 2023.02.07

[C# 교과서] 48~49. 제네릭 클래스 만들기, 확장 메서드 만들기

사용자 정의 클래스를 매개변수로 사용하는 제네릭 클래스 - 성능 향상을 가져다 주는 기법을 제네릭 - 매개변수화된 형식을 만드는 데 사용 - 제네릭에 전달하는 매개변수를 형식 매개변수라고 함 컬렉션 이니셜라이저로 제네릭 리스트 초기화 using System; class Person { public string Name { get; set; } } class Main2 { static void Main() { List people = new List { new Person { Name = "이재현"}, new Person { Name = "이주연"}, new Person { Name = "김영훈"} }; foreach (var person in people) { Console.WriteLine(person..

C#/C# 교과서 2023.02.06

[C#] 백준 알고리즘 10807번, 개수 세기

내가 쓰다가 요상해진 코드 using System; using System.Linq; namespace codingstudy { class Program { static void Main() { int count = 0; int[] input; int v; int n = int.Parse(Console.ReadLine()); // 정수 개수 입력 for (int i = 0; i < n; i++) { input = Array.ConvertAll(Console.ReadLine().Split(), int.Parse); // n만큼 input 배열에 저장 } // 찾으려고 하는 정수 v v = int.Parse(Console.ReadLine()); foreach(int n in input) { if (input..

C#/C# (백준) 2023.01.31

[C# 교과서] 46~47. 특성과 리플렉션, 개체와 개체 지향 프로그래밍

Obsolete 특성 [Obsolete] void OldMember() => Console.WriteLine("Old Method"); OldMember(); // 하면 밑줄이 생기고 마우스를 올리면 경고 메시지가 표시 Obsolete 특성은 라이브러리 또는 프레임워크를 제작할 때 기존 하위 호환성을 위해 코드를 남겨 놓지만, Obsolete 특성이 적용된 메서드는 사용하지 않도록 권장하는 목적이 강함 특성의 매개변수 위치 매개변수 : 특성에 전달되는 매개변수는 위치에 따라 구분됨 이름 매개변수 : 특성에 구현된 속성 또는 필드에 값을 전달할 때 사용 Conditional 특성 특정 기호에 따라 실행 여부 결정 [Conditional("DEBUG")] static void DebugMethod() => ..

C#/C# 교과서 2023.01.30

[C# 교과서] 44~45. 메서드 오버라이드, 인터페이스

메서드 오버라이드 : 재정의 클래스 관계를 따지는 상속 개념에서 부모 클래스에 이미 만든 메서드를 동일한 이름으로 자식 클래스에서 다시 정의(재정의)해서 사용한다는 개념이 메서드 오버라이드 메서드 오버라이드는 메서드를 새롭게 정의하는 것 오버라이드, 오버라이딩이라는 표현은 동일 부모 클래스에 virtual 키워드로 선언해 놓은 메서드는 자식 클래스에서 override 키워드로 재정의해서 사용 가능 상속 관계에서 메서드 오버라이드 public class Parent { public void Say() => Console.WriteLine("부모_안녕하세요"); public void Run() => Console.WriteLine("부모_달리다"); public virtual void Walk() => Co..

C#/C# 교과서 2023.01.30

[26강] 내가 만든 게임을 스토어에 팔아보자!

Configuration에서 Scripting Backend -> IL2CPP 로 변경 ARM64에 체크 (안드로이드는 64만 지원해서) Publishing Manager에서 KeystoreManager... Keystore... 에서 Create New하고 아래 정보들을 적어준다 이후에 빌드를 하려고 하면 apk가 아닌 aab로 확장자가 변한 것을 볼 수 있다 이후에는 구글에 "구글 콘솔"을 검색해서 들어가준다 개발자 계정으로 로그인해줘야하는데 $25 납부해야한다고 한다,, 그래서 지금은 패쓰.. 드디어 어몽어스 개발이 끝이 났다 배운 것을 활용해서 직접 내 게임을 만들어 출시해야겠다는 생각을 했다 생각 말고 실천으로 옮겨야지!

728x90
반응형