728x90
반응형

프로그래밍/CSharp 12

(C#) 다차원배열 Multidimensional Array

배열에 이어 다차원 배열은, 여러 차원의 배열을 생각하면 됩니다. 2차원 배열은 1차원 배열이 n개, 3차원 배열은 2차원 배열이 n개 있는 것이라고 생각하시면 됩니다. 구조와 형식은 이전 내용의 배열과 같습니다. 아래는 예시입니다. // 2차원 배열 int[,] numbers = new int[9, 9]; for (int i = 0; i < 9; ++i) { for(int y = 0; y < 9; ++y) { numbers[i, y] = (i + 1) * (y + 1); } } /** 형식 [,] = new [, ]; */ // 3차원 배열 int[, ,] numbers = new int[4, 3, 2]; /** 형식 [, ,] = new [ , ]; */

(C#) 배열 Array

배열이란 동일한 자료형의 변수(값) 들을 모아놓은 데이터의 집합이라고 보시면 됩니다. 이는 여느 프로그래밍 언어 대부분에서 지원하는 내용입니다. 그만큼 아주 편리하면서도 핵심적인 기능을 가지고 있습니다. C#에서는 아래 예시와 같이 사용합니다. // 5개의 int형 자료를 저장할 배열구조 int[] numbers = new int[5]; // 5개의 float형 자료를 저장할 배열구조 float[] heights = new float[5]; // [] = new []; // 기본형태 int[] numbers = new int[]{10, 20, 30, 40, 50}; // 단축형태 int[] numbers = {10, 20, 30, 40, 50};

(C#) 예외처리 try catch

프로그램을 만들고 개발하면서 예외가 발생하는 경우가 있습니다. 예외란 프로그램을 실행하다 도중에 모종의 이유로 프로그램이 강제 종료 됨을 뜻합니다. 즉, 논리적으로 어긋난 상황에 마주칠때 예외를 내보내며 프로그램은 종료가 됩니다. 이러한 프로그램 강제 종료 등을 막기위해 이러한 것들을 따로 처리하는 방법이 있습니다. 아래는 대략적인 예시입니다. try { // 실행내용 var file_cd = FileCode.GetCdInfo(file_cd); var cd_info = (from down in file_entities.TB_FILD_D where down.user_seq == user_seq && down.use_yn == "Y" select down )? .ToList(); if (file_cd.name

(C#) LINQ

LINQ는 Language Integrated Query 라는 약자로 통합된 질의 언어를 이용하여 특정 데이터들에서 이를 이용해 빠르게 데이터를 가져오는 일종의 방식입니다. 기본적으로 람다표현식을 사용합니다. 아래는 예시입니다. using System.Linq; public ActionResult _getUserInfoDetail(long user_idx, long blog_idx) { var blog_entities = new DevdogSchemaModels.User.BlogEntities(); var user_info = Task.Run(() => { var users = (from user in blog_entities.TB_USER where user.blog_seq == blog_idx && ..

(C#) Dictionary

Dictionary는 키와 값을 쌍으로 지정하여 저장할 수 있는 방식입니다. 값을 저장 할때 key가 중복되면 안됩니다. 구성은 { key : value } 입니다. 아래는 람다식을 이용한 LINQ로 데이터를 가져와 Dictionary 예시입니다. using System; using System.Collections.Generic; class DicEx { Static void Main() { Dictionary devdog = new Dictionary() { {"id", 2}, {"user_no", 20} }; foreach (KeyValueDevdog val in devdog) { Console.WriteLine("{0}, {1}", val.Key, val.Value); } } } /** 출력 : ..

(C#) 람다식 Lambda

람다식이란 간단히 말해서, 특정 키워드로 이루어진 기능(함수) 등을 사용하는 방식 대신 연산자를 사용하는 방식입니다. 일종의 메서드라고 생각하시는게 쉽습니다. 이를 이용하여 파라미터(인자) 를 넘길 수 있고, 길고 복잡한 코드를 짧고 간단한 표현법으로 바꿀 수 있어 코드에 대한 가독성이 높아지는 장점이 있습니다. 아래는 사용 예시입니다. class LambdaEx { // 대리자 선언 delegate int Calculator(int a, int b); static void Main(string[] args) { Calculator calc = (a, b) => a + b; Console.WriteLine(calc(2, 6)); } } // 출력 : 8 class LambdaEx { // 대리자 선언 d..

(C#) 접근제한 접근제어 Access Modifier

코드 설명 public 클래스 내/외부에서 모두 접근이 가능합니다. private 클래스 내부에서만 접근이 가능합니다. protected 클래스 외부에서 접근이 불가능하고, 파생 클래스(자식 클래스) 에서는 접근이 가능합니다. internal 같은 어셈블리에 있는 코드에서 public 처럼 사용합니다. 다른 어셈블리에 있는 코드에서 private 처럼 사용합니다. public class Bus { private int oil; // 접근 가능 public void Drive() { Charge(10); Console.WriteLine("Move"); } // 내부에서만 접근가능 private void Charge(int oil) { Boil += oil; } } // 메인함수 Bus bus = new B..

(C#) 생성자 Construtor

생성자란 객체가 생성 될때 호출되는 객체 초기화 메서드입니다. 클래스를 정의할때 생성자를 구현해주지 않아도 컴파일러에서 생성자를 직접 만들어줍니다. 이를 기본생성자라고 하고 이는 아무런 매개변수가 없이 생성됩니다. 또한 오버로딩이 가능한 특징이 있습니다. 아래는 예시입니다. public class Devdog { public Devdog(string id) { Id = id; } public Devdog(string id, string name) { Id = id; Name = name; } } Devdog devdog1 = new Devdog('devdog@kakao.com'); Devdog devdog2 = new Devdog('devdog@kakao.com', '뎁독');

(C#) 클래스 Class

클래스란 간단히 말해서, 객체를 정의해놓는 것입니다. 즉, 객체를 생성하기 위해 가장 기본적으로 만드는 구현체입니다. 이는 하나의 사물에 비유할 수 있고, 속성과 행동양식들을 정의하게끔 할 수 있는 객체의 설계도라고 보면 될 것 같습니다. 아래는 예시입니다. class Devdog { public string id; public string name; public void Greeting() { Console.WriteLine("Hi!"); } public void Eat() { Console.WriteLine("Yum-yum!"); } }

(C#) 어서트 Assert

어서트는 코드를 검증하기 위해 많이 사용합니다. 발생하면 안되는 조건을 런타임중에 검증해주고, 이게 발생하면 코드가 정상작동하지 않는다는 뜻으로 받아들이는게 좋습니다. 이는 디버그 모드에서만 동작하며 코드가 중지됩니다. 이는 릴리즈시, 주석처럼 무시됩니다. 아래는 예시입니다. using System; using System.Diagnostics; enum Dir { LEFT = 1, RIGHT, TOP, BOTTOM } static double Move(Dir direction) { switch(direction) { case Dir.LEFT: return 10; case Dir.RIGHT: return 20; case Dir.TOP: return 30; default: Debug.Assert(false..

728x90
반응형