경고 : 최신판이 아닙니다. 이 문서의 오래된 판을 편집하고 있습니다. 이것을 저장하면, 이 판 이후로 바뀐 모든 편집이 사라집니다. 로그인하고 있지 않습니다. 편집하면 당신의 IP 주소가 공개적으로 기록됩니다. 계정을 만들고 로그인하면 편집 시 사용자 이름만 보이며, 위키 이용에 여러 가지 편의가 주어집니다.스팸 방지 검사입니다. 이것을 입력하지 마세요!{{올바른 제목|C#}} {{정보상자 |주제1=프로그래밍 언어 |항목1=언어 이름 |내용1=C# |항목2=개발 주체 |내용2=마이크로소프트 |항목3=표준안 |내용3=ECMA-334<br/>ISO/IEC 23270 |항목4=패러다임 |내용4=객체지향적 }} '''C#'''은 마이크로소프트에서 개발한 객체지향적 프로그래밍 언어로 윈도우 프로그램, 웹 프로그램, 웹 서비스 등을 개발할 수 있다.<ref>[https://msdn.microsoft.com/ko-kr/library/hh145616%28VS.88%29.aspx MSDN 문서]</ref> Java가 실행시 JRE를 필요로 하듯 C#은 .NET Framework를 필요로 한다. C# 프로그램은 [[Just-in-time_컴파일|실행시에 컴파일]]된다. 프로그래밍 언어의 명세는 [http://www.ecma-international.org/publications/standards/Ecma-334.htm ECMA-334] 표준이다. == 특징 == * 객체지향 패러다임이다. (class, struct, interface등의 개념이 있다.) * 클래스 다중 상속은 불가능하다. (다만 인터페이스 다중 상속은 가능) * 기존에 만들어진 여러 클래스들 (e.g. System.XML.XMLDocument)을 쉽게 사용할 수 있어 생산성이 높다. * 가베지 콜렉터가 있어 메모리 관리에 신경 쓸 필요가 적다. * unsafe 블럭 내에서 포인터 연산을 할 수 있다. (다만 권장되진 않는다.) == Mono == C# 및 VB.NET 등 .NET 계열 언어로 만들어진 프로그램들은 보통 윈도우에서 구동되지만 Java과 같은 중간 언어 (CIL, MSIL로 불리기도 한다.)를 가지기에 리눅스에서도 mono를 사용하면 CIL로 작성된 프로그램(C# 또는 VB.NET으로 작성된 프로그램) 구동할 수 있다. 다만 오류가 날 수도 있고 윈도우 플랫폼에서만 작동되는 코드<del>[DllImport]</del>가 있을 수 있기에 모든 C# 프로그램들을 안정적으로 돌릴 순 없다. == 안드로이드/iOS 애플리케이션 개발 == Xamarin을 설치하여 개발할 수 있다, 하지만 부분 유료화이고 특히 무료 사용자는 Visual Studio랑 연동 불가능하다(30일 체험판 제외). 닥치고 무조건 Xamarin Studio다. == 버전 == {| class="wikitable" style="margin:auto; text-align:center; border:2px solid #9932CC;" |- | style="background:#9932CC;" {{!}} {{색|white|버전}} | style="background:#9932CC;" {{!}} {{색|white|플랫폼}} | style="background:#9932CC;" {{!}} {{색|white|표준}} | style="background:#9932CC;" {{!}} {{색|white|출시일}} | style="background:#9932CC;" {{!}} {{색|white|변경사항}} |- | '''1.0''' |.NET Framework 1.0 | rowspan="2" {{!}} [http://www.ecma-international.org/publications/files/ECMA-ST-WITHDRAWN/ECMA-334,%202nd%20edition,%20December%202002.pdf ECMA-334] | 2002년 1월 | - |- | '''1.1''' | .NET Framework 1.1 | 2003년 4월 | - |- | '''2.0''' | .NET Framework 2.0 | ECMA-334 | 2005년 11월 | <ref>제네릭, 파셜(partial) 타입, 열거자(iterator), nullable, 속석 멤버, 정적 클래스, 대리자(delegate) 추가.</ref> |- | '''3.0''' | .NET Framework 2.0~3.5 | - | 2007년 11월 | <ref>암시적 형식의 로컬변수(var), 객체 및 컬렉션 초기자, 자동구현 프로퍼티 (get; set; 만으로 getter / setter 메소드가 구현되는 편의 기능), 익명 타입, 확장 메소드(기존 클래스에 확장되는 메소드로, 지정 타입에 메소드처럼 사용은 가능하나 해당 타입의 접근 제한된 멤버는 접근 불가능), 질의 표현식(Linq의 시초), 람다식, 표현식 구조, 파셜 메소드 추가</ref> |- | '''4.0''' | .NET Framework 4.0 | - | 2010년 4월 | <ref>동적 바인딩(dynamic, 초기화 후에도 다른 타입으로 값을 할당할 수 있는 특징이 있다.), 이름있는 선택적 메소드 인자(argument) 추가.</ref> |- | '''5.0''' | .NET Framework 4.5 | [http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-334.pdf ECMA-334] | 2012년 8월 | <ref>비동기 메소드(async / awit), 호출정보 특성 추가</ref> |- | '''6.0''' | .NET Framework 4.6 | - | 2015년 7월 | <ref>Roslyn 기반의 동적 컴파일러, 네임스페이스 정의란에 정적 타입 별칭 정의, <br />예외 필터, 비동기 try / catch / finally 구문, 자동구현 속성 할당, <br />읽기 전용 속성 기본값 할당, 멤버에 표현식 지원, 계층형 null 체크, 치환형 문자열 식, <br />nameof 식(주로 멤버 및 타입 등 정의된 명칭을정확하게 문자열로 표현하는 식), Dictionary 초기자 추가.</ref> |- | '''7.0''' | .NET Framework 4.7 | - | 2017년 3월 | |} == 개발 프로그램 == * [[마이크로소프트_비주얼_스튜디오|Visual Studio]] * MonoDevelop / Xamarin Studio * SharpDevelop {{각주}} {{프로그래밍}} [[분류:프로그래밍 언어]] 요약: 리브레 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 3.0 라이선스로 배포됩니다(자세한 내용에 대해서는 리브레 위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요. 글이 직접 작성되었거나 호환되는 라이선스인지 확인해주세요. 리그베다 위키, 나무위키, 오리위키, 구스위키, 디시위키 및 CCL 미적용 사이트 등에서 글을 가져오실 때는 본인이 문서의 유일한 기여자여야 하고, 만약 본인이 문서의 유일한 기여자라는 증거가 없다면 그 문서는 불시에 삭제될 수 있습니다. 취소 편집 도움말 (새 창에서 열림) | () [] [[]] {{}} {{{}}} · <!-- --> · [[분류:]] · [[파일:]] · [[미디어:]] · #넘겨주기 [[]] · {{ㅊ|}} · <onlyinclude></onlyinclude> · <includeonly></includeonly> · <noinclude></noinclude> · <br /> · <ref></ref> · {{각주}} · {|class="wikitable" · |- · rowspan=""| · colspan=""| · |} {{lang|}} · {{llang||}} · {{인용문|}} · {{인용문2|}} · {{유튜브|}} · {{다음팟|}} · {{니코|}} · {{토막글}} {{삭제|}} · {{특정판삭제|}}(이유를 적지 않을 경우 기각될 가능성이 높습니다. 반드시 이유를 적어주세요.) {{#expr:}} · {{#if:}} · {{#ifeq:}} · {{#iferror:}} · {{#ifexist:}} · {{#switch:}} · {{#time:}} · {{#timel:}} · {{#titleparts:}} __NOTOC__ · __FORCETOC__ · __TOC__ · {{PAGENAME}} · {{SITENAME}} · {{localurl:}} · {{fullurl:}} · {{ns:}} –(대시) ‘’(작은따옴표) “”(큰따옴표) ·(가운뎃점) …(말줄임표) ‽(물음느낌표) 〈〉(홑화살괄호) 《》(겹화살괄호) ± − × ÷ ≈ ≠ ∓ ≤ ≥ ∞ ¬ ¹ ² ³ ⁿ ¼ ½ ¾ § € £ ₩ ¥ ¢ † ‡ • ← → ↔ ‰ °C µ(마이크로) Å °(도) ′(분) ″(초) Α α Β β Γ γ Δ δ Ε ε Ζ ζ Η η Θ θ Ι ι Κ κ Λ λ Μ μ(뮤) Ν ν Ξ ξ Ο ο Π π Ρ ρ Σ σ ς Τ τ Υ υ Φ φ Χ χ Ψ ψ Ω ω · Ά ά Έ έ Ή ή Ί ί Ό ό Ύ ύ Ώ ώ · Ϊ ϊ Ϋ ϋ · ΐ ΰ Æ æ Đ(D with stroke) đ Ð(eth) ð ı Ł ł Ø ø Œ œ ß Þ þ · Á á Ć ć É é Í í Ĺ ĺ Ḿ ḿ Ń ń Ó ó Ŕ ŕ Ś ś Ú ú Ý ý Ź ź · À à È è Ì ì Ǹ ǹ Ò ò Ù ù · İ Ż ż ·  â Ĉ ĉ Ê ê Ĝ ĝ Ĥ ĥ Î î Ĵ ĵ Ô ô Ŝ ŝ Û û · Ä ä Ë ë Ï ï Ö ö Ü ü Ÿ ÿ · ǘ ǜ ǚ ǖ · caron/háček: Ǎ ǎ Č č Ď ď Ě ě Ǐ ǐ Ľ ľ Ň ň Ǒ ǒ Ř ř Š š Ť ť Ǔ ǔ Ž ž · breve: Ă ă Ğ ğ Ŏ ŏ Ŭ ŭ · Ā ā Ē ē Ī ī Ō ō Ū ū · à ã Ñ ñ Õ õ · Å å Ů ů · Ą ą Ę ę · Ç ç Ş ş Ţ ţ · Ő ő Ű ű · Ș ș Ț ț 이 문서에서 사용한 틀: 틀:Skin (원본 보기) (준보호됨)틀:각주 (원본 보기) (준보호됨)틀:둘러보기 상자 (원본 보기) (보호됨)틀:둘러보기 상자/중첩 (원본 보기) (준보호됨)틀:둘러보기 상자/핵심 (원본 보기) (보호됨)틀:색 (원본 보기) (준보호됨)틀:시리즈 (편집) 틀:정보상자 (원본 보기) (준보호됨)틀:정보상자/행 (원본 보기) (준보호됨)틀:틀바 (원본 보기) (준보호됨)틀:프로그래밍 (편집)