C# 필드(Field) vs. 프로퍼티(Property) 차이 비교 필드(Field)와 프로퍼티(Property)는 객체 지향 프로그래밍, 특히 C#과 같은 언어에서 매우 중요한 개념입니다. 초보 개발자들은 두 개념 사이의 차이와 각각의 사용 상황에 대해 혼란을 겪기도 하는데요. 이번 포스팅에서는 각각의 쓰임새와 차이를 깔끔하게 정리해 보겠습니다. 필드와 프로퍼티의 기본 형태필드 (Field)필드는 클래스나 구조체에 속한 변수로, 데이터를 저장합니다. 필드는 기본적으로 클래스의 상태를 나타내는 데 사용됩니다.public class MyClass{ public int myField; // 공개 필드 private int myPrivateField; // 비공개 필드} 프로퍼티 (Property)프로퍼티는 필드에 값을 설정하거나 가져오는 방법을 제공합니다. 프.. c# 2023. 12. 7. [c# LINQ] Orderby vs ThenBy 차이 LINQ를 공부하다 보면 [ic]Orderby[/ic] 와 [ic]ThenBy[/ic]라는 용어를 자주 만나게 된다. "둘다 정렬 하는 거 아닌가?" 하는 생각이 들 수도 있다. 그런데 이 둘 사이에는 미묘한 차이가 있다.🤔 예제 코드 준비 [ic]Team()[/ic] 객체를 담은 [ic]teams[/ic] 리스트를 준비한다. List teams = new List() { new Team() { Name = "teamA", Score = 80, TimeCost = 50 }, new Team() { Name = "teamB", Score = 90, TimeCost = 40 }, new Team() { Name = "teamC", Score = 90, TimeCost = 60 }, new Team() { N.. c# 2023. 3. 20. [c# Linq] Select vs SelectMany 차이 LINQ 예제 코드를 보면 [ic]Select[/ic], [ic]SelectMany[/ic]가 빈번히 사용된다. 알면 쉽지만 헷갈리기 시작하면 한없이 헷갈린다. 이번 포스팅을 통해 확실하게 개념을 정리해보자. 예제용 리스트 생성 월드컵 우승 국가와 연도를 담은 리스트다. List list = new() { new Winner() { Country = "Argentina", Years = new[] { 1978, 1986, 2022 } }, new Winner() { Country = "England ", Years = new[] { 1966 } }, new Winner() { Country = "Germany ", Years = new[] { 1954, 1974, 1990, 2014 } }, }; Sel.. c# 2023. 3. 20. [c# ] 필드 | 프러퍼티 앞에 붙어 있는 required는 뭘까? 필드나 프러퍼티에 [ic]required[/ic]라고 붙어 있는걸 본적 있을거다. 이들의 정체는 무엇일까? 이 키워드는 c# 11에서 새로 도입 된 키워드로 필수 한정자라 불린다. 이해를 돕기 위해 필수 한정자(required modifier)를 쓴 경우/안 쓴경우 어떤 차이가 있는지 알아보자. 필수 한정자 안 쓴 경우 class Person { public string Name; // 필드 public int Age { get; set; } // 속성 } var p = new Person { Name = "Alice", Age = 20 }; Console.WriteLine(p.Name); //Alice 위 코드에서 [ic]Age[/ic]값을 할당 안한다면 어떻게 될까? var p = new Person.. c# 2023. 3. 13. [c# EntityFramework] dbcontext 마이그레이션 롤백하는 방법 작업을 하다 보면 DB를 잘못 만들어 과거로 돌아가고 싶을때가 있다. 이때는 엔터티 프레임워크에서 제공하는 롤백을 이용하면 손쉽게 과거로 돌아갈 수 있다. 이 글을 읽기 전 선수 지식 포스팅 Entity Framework 사용 방법(code-first) Insert, Update, Delete 하는법 with EntityFramework 초기 세팅 1) 최초 DB 연결 및 테이블 생성용 클래스 만들기 using Microsoft.EntityFrameworkCore; public class TestDbContext : DbContext { public DbSet Players { get; set;} protected override void OnConfiguring(DbContextOptionsBuilde.. c# 2023. 2. 28. [c#] json 파싱하는법 이번 포스팅의 목표는 아래 리스트 안에 든 값을 json으로 파싱하는것이다. string jsonString = "[{\"Confidence\": 0.54,\"ClassNum\": 1}, {\"Confidence\": 0.82, \"ClassNum\": 0}]"; 1. 클래스 생성(틀 만들기) 위 값을 추출하기 위해선 형태에 맞는 틀을 만들어 줘야한다. 우리는 그 틀을 클래스를 통해 만들거다. class ClassificationResult { public decimal Confidence { get; set; } public int ClassNum { get; set; } } 클래스명은 자유롭게 생성해도 된지만 속성값(property)은 명칭을 일치시켜 줘야 한다. (대문자, 소문자 조심) 뿐만 아니라.. c# 2023. 2. 23. C#에서 파이썬 파일 실행 시키는 방법 완벽정리(with Process) 어떻게 python파일을 c#에서 실행시킬 수 있을까? 여러 방법이 있지만 이번에 소개할 내용은 [ic]Process()[/ic]를 이용한 방법이다. 1.예제 코드 준비 / 기본 컨셉 1) python코드 //test1.py print('hello world\n hello world2\n hello world3' ) 2) C# 코드 [ic]test1.py[/ic]를 c#에서 동작시켜 보겠다. 기본적으로 2가지 컨셉이 있다. 동작원리는 같지만 코드 형태가 조금 다르기 때문에 소개한다. (1) [ic]Process()[/ic] 객체 생성방식 Process process = new Process(); [ic]Process[/ic] 객체를 생성한다. // Set the file path of the Python.. c# 2023. 1. 3. [c#] Entity Framework 사용 방법(code-first) (해당 포스팅은 이전 포스팅을 읽고 왔다는 전제로 작성된 글입니다.) 지금까지는 데이터베이스를 선 구성한 후, 데이터베이스에 있는 값을 읽거나, 추가 삭제하는 방법에 대해 배워보았습니다. 이번 포스팅에서는 순서 바꿔 c#코드를 작성한 후, 그 코드를 기반으로 데이터베이스를 생성하는 방법에 대해 알아보겠습니다. 이러한 방식을 code-first 방식이라고 합니다. 1) DB생성을 위한 c# 코드 작성 우선 DbContext를 상속한 클래스를 만들어줍니다. 기존 방식과 차이가 없기 때문에 설명은 생략합니다. 마찬가지로 클래스도 생성해줍니다. 2) 필요한 패키지 다운로드 code first에 직접적으로 사용되는 패키지인 EntityFrameworkCore.Tools를 추가 설치 해줍니다. 3) DB 생성 명령.. c# 2022. 8. 19. [c#] 의존성 주입(dependency Injection) 이란? 의존성 주입에 대한 추상적인 정의는 일단 접어두고 의존성 주입이라는 낯선 개념이 왜 필요한지 먼저 알아보겠습니다. 이 글을 읽기 전 선수 지식 포스팅 [c#] 업 캐스팅이란? [c#] 인터페이스란? 1. 예제 설명을 위한 준비사항(프로젝트 및 파일 생성) 클래스 라이브러리로 생성한 프로젝트 2개(ProjectA, ProjectB)를 구성합니다. 그리고 그 하위에 ProjectATest.cs, ProjectbTest.cs라는 파일을 생성하고, 아래와 같이 Test()메소드를 구현합니다. //ProjectATest.cs //ProjectBTest.cs 여기서 우리가 하고 싶은건 Program.cs 단에서 위 클래스들의 메소드를 사용하고 싶습니다. 일반적으로 다른 프로젝트의 메소드를 실행하려면 어떻게할까요? .. c# 2022. 8. 10. [c# blazor] NavigationManager LocationChanged 이벤트란? LocationChanged이벤트는 페이지를 이동할때 자동으로 발생되는 이벤트입니다. 이 글을 읽기 전 선수 지식 포스팅 [c#] 이벤트란? | 델리게이트와 차이 [c#] EventHandler란? 사용할때는 NavigationManager클래스를 inject하여 사용하는데요. NavigationManager 클래스 원문 코드로 들어가보면 LocationChanged라는 EventHander가 포함되어있습니다. EventHandeler 원코드로 들어가보면, LocationChangedEventArgs를 두번째 인자로 받도록 세팅되어있습니다. 그렇다면 LocationChangedEventArgs는 어떤 녀석일까요? Location과 IsNavigationIntercepted(boolean 형태)라는 프러퍼.. c#/blazor 2022. 7. 27. [c# blazor] NavigateTo를 이용한 특정 페이지 이동방법 일반적으로 버튼을 클릭하여 특정 url로 이동할때 href속성값을 이용합니다. 하지만 이번 포스팅에서는 href가 아닌 NavigateTo를 활용하여 특정 url로 이동하는 방법에 대해 알아보겠습니다. 먼저 아래와 같이 NavagationManager라는 클래스를 inject합니다. NavigationManagerReference는 해당 클래스를 사용하기위해 사용되는 이름이라 보시면 됩니다. 그렇기 때문에 아무렇게 이름을 적으셔도 상관없습니다. href를 지우고 onclick이벤트를 등록합니다. 해당 버튼을 누르면 GoToGoogle()이라는 함수가 실행되는 코드입니다. GoToGoogle()함수 바디에는 앞서 inject한 NavigationManagerRefrence 객체의 메소드인 NavigateT.. c#/blazor 2022. 7. 26. [c# blazor] c# 코드 비하인드 파일 생성하는 방법 blazor에서 제공하는 razor component 파일에는 UI단과 c#코드를 작성하는 코드 스페이스로 구성되어 있습니다. 하지만 코드가 길어지다 보면 코드 스페이스에 모든 코드를 작성하기 부담스러울때가 있는데요. 이럴때 코드 비하인드 파일을 통해 따로 코드를 관리하는게 편리합니다. 이번 포스팅은 코드 비하인드 파일 생성에 관련된 내용입니다. 예제로 사용할 Test.razor파일을 먼저 생성합니다. //Test.razor 코드 스페이스단에 작성한 프러퍼티값을 UI단에 출력하는 아주 간단한 코드를 작성 해보았습니다. (바인딩을 모르시는 분은 해당 포스팅 참조) output: 우리가 해보고 싶은것은 코드 스페이스 구간에 작성했던 것을 코드 비하인드 파일로 옮겨 똑같이 작동하는지 확인해보고 싶습니다. 그러.. c#/blazor 2022. 7. 25. 이전 1 2 3 4 ··· 8 다음