Linq는 람다식(Lamdba Expressions)과 합쳐지면 훨씬 더 간결하게 표현 할 수 있다. Linq자체의 편의성도 있지만 이 람다식을 익혀두면 복잡하지않은 데이터 처리를 더 간단하게 처리 할 수 있을거 같다. int[] nums = new int[9] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; string[] strings = new string[5] { "a", "b", "c", "d", "e" }; // n은 nums의 데이터를 지칭 // Where과 조건을 통해서 짝수만 sample1에 담아준다. var sample1 = nums.Where(n => n % 2 == 0); // 담아둔 데이터를 foreach를 통해서 출력 foreach (var n in sample1) { C..
상속 (inheritance)은 부모 클래스의 프로퍼티와 메서드를 자식 클래스에서 사용 할수 있게 해주는것이다. 여러가지 클래스에 공통적으로 들어가는 부분이 있으면 활용하기 좋다. c#에서의 상속은 : 키워드를 통해서 상속 받을 수 있다. namespace inheritance { // 부모 class public class Sample1 { public int data1 { get; set; } public string data2 { get; set; } public bool data3 { get; set; } public void Hello() { Console.WriteLine("Hello ..."); } public void Print(string _value) { Console.WriteLine..
해당 프로젝트의 Web.config 파일 하단에 connectionStrings을 생성한다. connectionStrings의 경우에는 아래와 같은 정보로 생성한다. 해당 내용은 컴퓨터에 따라 다름 connectionStrings을 만들었으면 해당프로젝트의 Contexts라는 폴더를 만들고 DB연결 클래스를 만들어준다. public class HomeDb : DbContext { public HomeDb() : base("name=SampleDbContext") { } public DbSet Books { get; set; } } 해당 클래스는 DbContext를 상속받는다. 그 다음에 Models폴더에 원하는 클래스를 정의 해준다. public class Book { [Key] public int Bo..
먼저 새 프로젝트를 만든다음에 ASP.NET 웹 애플리케이션(.NET Framework)를 클릭해준다. 그 다음에는 MVC 형태로 프로젝트 생성을 마친다. 프로젝트가 생성 되었으면 도구 > NuGet 패키지 관리자 > 패키지 관리자 콘솔을 눌러 콘솔을 열어준다. 콘솔창이 열렸으면 install-package Entityframework를 입력해서 해당 프로젝트에 Entityframework를 설치해준다. 설치가 완료되면 프로젝트에 여러가지 파일이 추가되게 된다.
docs.microsoft.com/ko-kr/dotnet/api/system.windows.forms.bindingsource?view=net-5.0 BindingSource 클래스 (System.Windows.Forms) 폼의 데이터 소스를 캡슐화합니다.Encapsulates the data source for a form. docs.microsoft.com BindingSource는 Form 데이터를 캡슐화 하는데 사용하고 주로 Listbox나 DataGridView에서 사용된다. 예제 List sampleList = new List(); BindingSource bs = new BindingSource(); int sampleData = 1; public Form1() { InitializeComp..
c#의 접근 제한자 (엑세스 한정자)는 크게 4가지로 이루어져 있다. public : 어디서든 접근 가능 private : 해당 클래스 내부에서만 접근 가능 internal : 같은 어셈블리 내에서만 접근 가능 protected : 파생 클래스 상속받은 클래스에서 접근 가능 많이 사용하는건 public과 private이다. class의 접근 제한자 기본값은 internal이며 class내의 필드나 메서드의 접근 제한자 기본값은 private이다. access_modifier 네임스페이스 using access_modifier2; using System; namespace access_modifier { // 기본값은 internal 따라서 같은 어셈블리 (프로젝트)에서는 사용이 가능하다. class Sa..
this 키워드는 해당 클래스와 해당클래스로 인스턴스화된 객체를 가르키게 된다. 우리가 특정한 메서드를 호출하게되면 보이지는 않지만 해당 객체까지 같이 넘겨주게 된다. 하지만 this는 생략이 가능하다. 또한 정적메서드 static일 경우는 this 키워드를 사용 할 수 없다. static 메서드 자체가 해당 클래스내에서 공통으로 사용하는 메서드이기 때문이다. public class Sample { string name; int age; int count; public Sample(string _name, int _age, int _count) { this.name = _name; age = _age; count = _count; } public void Hello() { // Console.WriteL..
getter와 setter는 여러 프로그램 언어에서 사용하는 개념인데 사용하는 첫번째 이유는 class의 확장성이 증가된다. 물론 모든 필드에 public 키워드를 사용하되면 어디서든 사용할수 있기야 하겠지만 그렇게되면 불필요하거나 예상하지 못한 값들이 생성되거나 출력될수 있다. 그렇기에 get, set의 가장 큰 의미는 클래스 내부 필드들의 캡슐화 및 은닉성을 위해서 사용합니다. public class Sample { public string name; private int age; // public string gender; private string gender; // constructor public Sample(string _name, int _age, string _gender) { this...
Struct는 구조체로 Class와 상당히 비슷하지만 몇가지 특징을 가지고있다. 먼저 리터널 초기화가 되지않는다. 따라서 Struct값에 값을 Set하기 위해서는 Struct내의 필드에 public 속성을 주던지 아니면 Set메서드를 만들어서 값을 넣어줄수있다. 구조체는 예전에 c언어와의 호환때문에 사용하는 문법이라고 한다. public struct Sample { // int date1 = 10; public int data1; // get public int getData() { return data1; } // set public void setDate(int value) { this.data1 = value; } } class Program { static void Main(string[] arg..
정적 생성자(static constructor)는 기본 생성자에 static 예약어를 붙인 경우로 클래스에 단 한개만 존재할 수 있고, 주로 정적 맴버를 초기화하는 기능을 한다. class Sample { static Sample() { Console.WriteLine("static constructor 생성"); } } 특징으로는 다음과 같이 있는데 #1. 매개변수를 포함할 수 없다. #2. 클래스의 어떤 맴버든 최초로 접근하는 시점에 단 한번만 실행된다. #3. 인스턴스 생성자를 통해 객체가 만들어지는 시점이 되면 다른 코드보다 우선적으로 실행된다. 다음은 생성 예제이다. class Person { public string name; public Person(string _name) { Console..
docs.microsoft.com/ko-kr/dotnet/api/system.environment.newline?view=net-5.0 Environment.NewLine 속성 (System) 이 환경에 대해 정의된 줄 바꿈 문자열을 가져옵니다.Gets the newline string defined for this environment. docs.microsoft.com 해당 환경에 맞는 줄바꿈을 가져오는 메서드 흔히 콘솔을 쓸때는 \n\r을 쓰지만 위 명령어를 써도된다. 추후에 여러가지 환경에서 개발할경우 상황에 따라서 명령어가 달라질수 있으니 참고하면 좋을거같다. static void Main(string[] args) { Console.WriteLine("Line1\n\rLine2" + Envir..
EntityFramework은 asp.net에서 많이 쓰고 있는 Framework이다 이 Framework을 통해서 DB와 간단하게 연결이 가능하고 제어도 용이하다. 일단은 Framework의 설치를 원하는 프로젝트에서 도구 > NuGet 패키지 관리자를 들어가게 되면 2가지 선택지가 있는데. 패키지 관리자 콘솔의경우 위와 같이 타이핑하면 해당프로젝트에 엔티티프레임워크가 설치 된다. 하지만 위와 같이 설치하게되면 최신버전이 설치되니 특정 버전을 원할경우 아래와 같이 특정 버전을 명시해줄수있다. 패키지 관리자 같은경우 EntityFramework를 검색하면 바로 나오니 설치해주면 된다. 위 관리자에서도 특정버전을 선택할수있으니 원하는 버전으로 설치해주면 엔티티 프레임워크가 해당 프로젝트에 설치가 완료된다.