기본 출력
using System; class MainClass { public static void Main() { Console.WriteLine("A simple C# program."); } } |
메인함수 인자 반복 출력
using System; class MainClass { public static void Main(string[] args) { foreach (string arg in args) Console.WriteLine("Arg: {0}", arg); } } |
메인함수 리턴
using System; class MainClass { public static int Main() { Console.WriteLine("Hello, Universe!"); return (0); } } |
메인함수 4가지 형태
using System; class MainClass { static void Main() { } static int Main() { } static void Main(string[] args) { } static int Main(string[] args) { } } |
인자 옵션 사용 여부 확인
class MainClass { static void Main(string[] args) { if (args[0][0] == '-') { System.Console.WriteLine("-"); } } } |
WriteLine 문자열 안에 변수 사용
using System; using System.Collections.Generic; using System.Linq; using System.Text; class Program { static void Main(string[] args) { Console.WriteLine("{0} command line arguments were specified:", args.Length); foreach (string arg in args) Console.WriteLine(arg); } } |
네임스페이스
using System; using System.Collections.Generic; using System.Linq; using System.Text; class Program { static void Main(string[] args) { Console.WriteLine("A simple C# program."); System.Console.WriteLine("A simple C# program."); } } |
네임스페이스 사용, [STAThread]
기본적으로, VS .NET에 의해 만들어진 응용 프로그램의 Main()메소드에는 [STAThread] 어트리뷰트가 첨가되어 있다.
이 어트리뷰트는 해당 응용 프로그램이 COM형식을 이용하는 경우에 (단지 이 경우에만 해당하는 것인데) 해당 응용 프로그램이
단일 스레드 아파트(single threaded apartment, STA) 모델로 설정되어야 한다는 것을 런타임에게 알려주는 역할을 한다.
해당 응용 프로그램에서 COM 형식을 이용하지 않는다면, [STAThread] 어트리뷰트는 무시되기 때문에 삭제해도 무방하다.
이 어트리뷰트는 해당 응용 프로그램이 COM형식을 이용하는 경우에 (단지 이 경우에만 해당하는 것인데) 해당 응용 프로그램이
단일 스레드 아파트(single threaded apartment, STA) 모델로 설정되어야 한다는 것을 런타임에게 알려주는 역할을 한다.
해당 응용 프로그램에서 COM 형식을 이용하지 않는다면, [STAThread] 어트리뷰트는 무시되기 때문에 삭제해도 무방하다.
using System; namespace HelloWorld { /// <summary> /// Summary description for Class1. /// </summary> class Class1 { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main(string[] args) { System.Console.WriteLine("Hello world from C#"); } } } |
네임스페이스 안에 들어 있는 클래스 객체 생성
using System; namespace Counter { class MyClass { } } class MainClass { public static void Main() { Counter.MyClass my = new Counter.MyClass(); } } |
네임스페이스 별명 사용
using ThatConsoleClass = System.Console; class MainClass { public static void Main() { ThatConsoleClass.WriteLine("Hello"); } } |
네임스페이스 안의 클래스 사용하여 출력
using System; namespace Counter { class MyClass { public MyClass() { Console.WriteLine("Counter1 namespace."); } } } namespace Counter2 { class MyClass { public MyClass() { Console.WriteLine("Counter2 namespace."); } } } class MainClass { public static void Main() { Counter.MyClass m1 = new Counter.MyClass(); Counter2.MyClass m2 = new Counter2.MyClass(); } } |
네임스페이스를 나누어서 클래스 정의 가능
using System; using Counter; namespace Counter { class MyClass { } } namespace Counter { class MySecondClass { } } class MainClass { public static void Main() { MyClass m = new MyClass(); MySecondClass cu = new MySecondClass(); } } |
네스티디 네임스페이스
using System; namespace NS1 { class ClassA { public ClassA() { Console.WriteLine("constructing ClassA"); } } namespace NS2 { class ClassB { public ClassB() { Console.WriteLine("constructing ClassB"); } } } } class MainClass { public static void Main() { NS1.ClassA a = new NS1.ClassA(); NS1.NS2.ClassB b = new NS1.NS2.ClassB(); } } |
네임스페이스 별명, :: 사용
using System; using Counter; using AnotherCounter; using Ctr = Counter; namespace Counter { class MyClass { } } namespace AnotherCounter { class MyClass { } } class MainClass { public static void Main() { Ctr::MyClass m = new Ctr::MyClass(); } } |
네임스페이스.클래스 오브젝트 = new 네임스페이스.생성자();
namespace CompanyName { public class Car { public string make; } } namespace DifferentCompany { public class Car { public string make; } } class MainClass { public static void Main() { System.Console.WriteLine("Creating a CompanyName.Car object"); CompanyName.Car myCar = new CompanyName.Car(); myCar.make = "Toyota"; System.Console.WriteLine("myCar.make = " + myCar.make); System.Console.WriteLine("Creating a DifferentCompany.Car object"); DifferentCompany.Car myOtherCar = new DifferentCompany.Car(); myOtherCar.make = "Porsche"; System.Console.WriteLine("myOtherCar.make = " + myOtherCar.make); } } |
네임스페이스 계층...
namespace CompanyName { namespace UserInterface { public class MyClass { public void Test() { System.Console.WriteLine("UserInterface Test()"); } } } } namespace CompanyName.DatabaseAccess { public class MyClass { public void Test() { System.Console.WriteLine("DatabaseAccess Test()"); } } } class MainClass { public static void Main() { CompanyName.UserInterface.MyClass myUI = new CompanyName.UserInterface.MyClass(); CompanyName.DatabaseAccess.MyClass myDB = new CompanyName.DatabaseAccess.MyClass(); CompanyName.DatabaseAccess.MyClass myMT = new CompanyName.DatabaseAccess.MyClass(); myUI.Test(); myDB.Test(); myMT.Test(); } } |
-------pause 1.5.15-----
-------start 5장 문자열-----
문자열 선언
using System; class MainClass { static void Main(string[] args) { string MyString = "Hello World"; string Path = @"c:\Program Files"; string Path2 = "c:\\Program Files"; string Name = "Joe"; } } |
문자열 인자로 넘겨서 변환 -> 복사되어 원본은 변경 안됨
using System; class MainClass { static void Main(string[] args) { string strOriginal = "Original String"; Console.WriteLine("Value of strOriginal before call: {0}", strOriginal); TryToAlterString(strOriginal); Console.WriteLine("Value of strOriginal after call: {0}", strOriginal); } static void TryToAlterString(string str) { str = "Modified string"; } } |
문자열 대분자로 변환, 복사되어 변환, 원본은 그대로
using System; using System.Collections.Generic; using System.Text; class Program { static void Main(string[] args) { string s1 = "This is my string."; Console.WriteLine("s1 = {0}", s1); string upperString = s1.ToUpper(); Console.WriteLine("upperString = {0}", upperString); Console.WriteLine("s1 = {0}", s1); string s2 = "My other string"; s2 = "New string value"; } } |
빈 문자열 생성
using System; using System.IO; using System.Text; public class MainClass { public static void Main(String[] args) { string address = String.Empty; } } |
문자열을 한 문자씩 출력
using System; class MainClass { public static void Main() { string myString = "To be or not to be"; for (int count = 0; count < myString.Length; count++) { Console.WriteLine("myString(" + count + "] = " + myString[count]); } } } |
문자열 비교, 같으면 0, 앞이면 -1, 뒤면 1, 비교시 대소문자 구분, 일부 문자열만 비교
using System; class MainClass { public static void Main() { int result; result = String.Compare("bbc", "abc"); Console.WriteLine("String.Compare(\"bbc\", \"abc\" = " + result); result = String.Compare("abc", "bbc"); Console.WriteLine("String.Compare(\"abc\", \"bbc\" = " + result); result = String.Compare("bbc", "bbc"); Console.WriteLine("String.Compare(\"bbc\", \"bbc\" = " + result); result = String.Compare("bbc", "BBC", true); Console.WriteLine("String.Compare(\"bbc\", \"BBC\", true = " + result); result = String.Compare("bbc", "BBC", false); Console.WriteLine("String.Compare(\"bbc\", \"BBC\", false = " + result); result = String.Compare("Hello World", 6, "Goodbye World", 8, 5); Console.WriteLine("String.Compare(\"Hello World\", 6, " + "\"Goodbye World\", 8, 5) = " + result); } } |
문자열 합치기
using System; class MainClass { public static void Main() { string myString4 = String.Concat("A, ", "B"); Console.WriteLine("String.Concat(\"A, \", \"B\") = " + myString4); string myString5 = String.Concat("A, ", "B ", "and countrymen"); Console.WriteLine("String.concat(\"A, \", \"B \", " + "\"and countrymen\") = " + myString5); } } |
문자열 합치기 +연산자
using System; class MainClass { public static void Main() { string myString6 = "To be, " + "or not to be"; Console.WriteLine("\"To be, \" + \"or not to be\" = " + myString6); } } |
문자열 복사 String.Copy() 이용
using System; class MainClass { public static void Main() { string myString4 = "string4"; Console.WriteLine("myString4 = " + myString4); Console.WriteLine("Copying myString4 to myString7 using Copy()"); string myString7 = String.Copy(myString4); Console.WriteLine("myString7 = " + myString7); } } |
문자열 비교 String.Equals(str1, str2), str1.Equals(str2), str1 == str2
using System; class MainClass { public static void Main() { bool boolResult; string myString = "str"; string myString2 = "str2"; boolResult = String.Equals("bbc", "bbc"); Console.WriteLine("String.Equals(\"bbc\", \"bbc\") is " + boolResult); boolResult = myString.Equals(myString2); Console.WriteLine("myString.Equals(myString2) is " + boolResult); boolResult = myString == myString2; Console.WriteLine("myString == myString2 is " + boolResult); } } |
문자열 형식 지정
using System; class MainClass { public static void Main() { float myFloat = 1234.56789f; string myString8 = String.Format("{0, 10:f3}", myFloat); Console.WriteLine("String.Format(\"{0, 10:f3}\", myFloat) = " + myString8); } } |
문자열 합치기. "." 대신 "", " " 등 사용 가능
using System; class MainClass { public static void Main() { string[] myStrings = { "To", "be", "or", "not", "to", "be" }; string myString9 = String.Join(".", myStrings); Console.WriteLine("myString9 = " + myString9); } } |
문자열 나누기
using System; class MainClass { public static void Main() { string[] myStrings = { "To", "be", "or", "not", "to", "be" }; string myString9 = String.Join(".", myStrings); myStrings = myString9.Split('.'); foreach (string mySplitString in myStrings) { Console.WriteLine("mySplitString = " + mySplitString); } } } |
문자열에서 문자의 인덱스 추출
using System; class MainClass { public static void Main() { string[] myStrings = { "To", "be", "or", "not", "to", "be" }; string myString = String.Join(".", myStrings); char[] myChars = { 'b', 'e' }; int index = myString.IndexOfAny(myChars); Console.WriteLine("'b' and 'e' occur at index " + index + " of myString"); index = myString.LastIndexOfAny(myChars); Console.WriteLine("'b' and 'e' last occur at index " + index + " of myString"); } } |
문자열 추가, 삭제, 치환(대소문자 일치해야 함)
using System; class MainClass { public static void Main() { string[] myStrings = { "To", "be", "or", "not", "to", "be" }; string myString = String.Join(".", myStrings); string myString10 = myString.Insert(6, "A, "); Console.WriteLine("myString.Insert(6, \"A, \") = " + myString10); string myString11 = myString10.Remove(14, 7); Console.WriteLine("myString10.Remove(14, 7) = " + myString11); string myString12 = myString11.Replace(',', '?'); Console.WriteLine("myString11.Replace(',', '?') = " + myString12); string myString13 = myString12.Replace("to be", "Or not to be A"); Console.WriteLine("myString12.Replace(\"to be\", \"Or not to be A\") = " + myString13); } } |
문자열 좌우에 공백, 또는 문자 채우기
using System; class MainClass { public static void Main() { string[] myStrings = { "To", "Be", "or", "not", "to", "be" }; string myString = String.Join(".", myStrings); string myString14 = '(' + myString.PadLeft(20) + ')'; Console.WriteLine("'(' + myString.PadLeft(20) + ')' = " + myString14); string myString15 = '(' + myString.PadLeft(20, '.') + ')'; Console.WriteLine("'(' + myString.PadLeft(20, '.') = " + myString15); string myString16 = '(' + myString.PadRight(20) + ')'; Console.WriteLine("'(' + myString.PadRight(20) + ')' = " + myString16); string myString17 = '(' + myString.PadRight(20, '|') + ')'; Console.WriteLine("'(' + myString.PadRight(20, '|') + ')' = " + myString17); } } |
문자열 양 끝 잘라내기, 문자 배열을 인자로 가질 수 있음
using System; class MainClass { public static void Main() { string myString18 = '(' + " Whitespace ".Trim() + ')'; Console.WriteLine("'(' + \" Whitespace \".Trim() + ')' = " + myString18); string myString19 = '(' + " Whitespace ".TrimStart() + ')'; Console.WriteLine("'(' + \" Whitespace \".TrimStart() + ')' = " + myString19); string myString20 = '(' + " Whitespace ee".TrimEnd(new char[] {'e', ' '}) + ')'; Console.WriteLine("'(' + \" Whitespace \".TrimEnd() + ')' = " + myString20); } } |
--------------------------------------http://csharpcomputing.com/Tutorials/Lesson9.htm---------------------------------------
파일 입출력 기본
using System; using System.IO; namespace FileHandlingArticleApp { class Program { static void Main(string[] args) { if(File.Exists("test.txt")) { string content = File.ReadAllText("test.txt"); Console.WriteLine("Current content of file:"); Console.WriteLine(content); } Console.WriteLine("Please enter new content for the file:"); string newContent = Console.ReadLine(); File.WriteAllText("test.txt", newContent); } } } |
파일 입출력 스트림 이용
using System; using System.IO; namespace FileHandlingArticleApp { class Program { static void Main(string[] args) { if (File.Exists("test.txt")) { string content = File.ReadAllText("test.txt"); Console.WriteLine("Current content of file:"); Console.WriteLine(content); } Console.WriteLine("Please enter new content for the file:"); using (StreamWriter sw = new StreamWriter("test.txt")) { string newContent = Console.ReadLine(); while (newContent != "exit") { sw.Write(newContent + Environment.NewLine); newContent = Console.ReadLine(); } } } } } |
파일 삭제, ReadKey() 문자 입력( 콘솔 화면 멈춤용으로 사용)
using System; using System.IO; namespace FileHandlingArticleApp { class Program { static void Main(string[] args) { if (File.Exists("test.txt")) { File.Delete("test.txt"); if (File.Exists("test.txt") == false) { Console.WriteLine("File deleted..."); } } else { Console.WriteLine("File test.txt does not yet exist!"); } Console.ReadKey(); } } } |
디렉토리 삭제
using System; using System.IO; namespace FileHandlingArticleApp { class Program { static void Main(string[] args) { if (Directory.Exists("testdir")) { Directory.Delete("testdir"); if (Directory.Exists("testdir") == false) Console.WriteLine("Directory deleted..."); } else Console.WriteLine("Directory testdir does not yet exist!"); } } } |
파일 이름 변경
using System; using System.IO; namespace FileHandlingArticleApp { class Program { static void Main(string[] args) { if (File.Exists("test.txt")) { Console.WriteLine("Please enter a new name for this file:"); string newFilename = Console.ReadLine(); if (newFilename != String.Empty) { File.Move("test.txt", newFilename); if (File.Exists(newFilename)) { Console.WriteLine("The file was renamed to " + newFilename); } } } } } } |
디렉토리 변경
using System; using System.IO; namespace FileHandlingArticleApp { class Program { static void Main(string[] args) { Console.WriteLine("Please enter a new name for this directory:"); string newDirName = Console.ReadLine(); if (newDirName != String.Empty) { Directory.Move("testdir", newDirName); if (Directory.Exists(newDirName)) { Console.WriteLine("The directory was renamed to " + newDirName); } } } } } |
디렉토리 생성
using System; using System.IO; namespace FileHandlingArticleApp { class Program { static void Main(string[] args) { Console.WriteLine("Please enter a name for the new directory:"); string newDirName = Console.ReadLine(); if (newDirName != String.Empty) { Directory.CreateDirectory(newDirName); if (Directory.Exists(newDirName)) { Console.WriteLine("The directory was created!"); } } } } } |
현재 파일 정보 얻기
using System; using System.IO; namespace FileHandlingArticleApp { class Program { static void Main(string[] args) { FileInfo fi = new FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location); if (fi != null) Console.WriteLine(String.Format("Information about file: {0}, {1} bytes, last modified on {2} - Full path: {3}", fi.Name, fi.Length, fi.LastWriteTime, fi.FullName)); } } } |
디렉토리의 파일 정보 얻기
using System; using System.IO; namespace FileHandlingArticleApp { class Program { static void Main(string[] args) { DirectoryInfo di = new DirectoryInfo(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)); if (di != null) { FileInfo[] subFiles = di.GetFiles(); if (subFiles.Length > 0) { Console.WriteLine("Files:"); foreach (FileInfo subFile in subFiles) { Console.WriteLine("\t" + subFile.Name + "\t(" + subFile.Length + " bytes)"); } } } } } } |
멤버 변수와 정적 멤버 변수
using System; class Demo { public static int k; public int i; public void show() { Console.WriteLine("k = {0} i = {1}", k, i); } } class Test { public static void Main() { Demo a = new Demo(); a.i = 1; Demo b = new Demo(); b.i = 2; Demo.k = 4; a.show(); b.show(); } } |
ref 타입
using System; public class Swap { public void swap(ref int x, ref int y) { int temp = x; x = y; y = temp; } } public class Test { static void Main() { int a = 2; int b = 4; Swap hi = new Swap(); hi.swap(ref a, ref b); Console.WriteLine("a = {0}, b = {1}", a, b); } } |
상속
using System; class Demo { public class animal { int weight; string name; public void show() { Console.WriteLine("{0} has weight {1}", name, weight); } public void my_set(int k, string z) { weight = k; name = z; } } public class tiger : animal { public tiger() { my_set(100, "tiger"); show(); } } public class lion : animal { public lion() { my_set(200, "lion"); show(); } } public static void Main() { tiger Mike = new tiger(); lion Bob = new lion(); } } |
레퍼런스 - 안바뀌는 것
using System; class Demo { public class Test { public void change(int k) { k = k + 2; } } public static void Main() { int i = 3; Test hi = new Test(); Console.WriteLine("Before {0}", i); hi.change(i); Console.WriteLine("After {0}", i); } } |
레퍼런스 - 리턴받는 것
using System; class Demo { public class Test { public int change(int k) { return k + 2; } } public static void Main() { int i = 3; Test hi = new Test(); Console.WriteLine("Before {0}", i); Console.WriteLine("After {0}", hi.change(i)); } } |
레퍼런스 - ref 사용한 것
using System; class Demo { public class Test { public void change(ref int k) { k = k + 2; } } public static void Main() { int i = 3; Test hi = new Test(); Console.WriteLine("Before {0}", i); hi.change(ref i); Console.WriteLine("After {0}", i); } } |
윈도우 폼 생성
using System.Windows.Forms; class test : Form { public static void Main() { test Helloform = new test(); Helloform.Text = "How do you do?"; Application.Run(Helloform); } } |
윈도우 폼 텍스트박스 추가
using System.Windows.Forms; class test : Form { public static void Main() { test HelloForm = new test(); System.Windows.Forms.TextBox text = new System.Windows.Forms.TextBox(); text.Text = "This is a textbox"; HelloForm.Controls.Add(text); Application.Run(HelloForm); } } |
윈도우 폼 체크박스 추가
using System.Windows.Forms; class test : Form { public static void Main() { test HelloForm = new test(); HelloForm.BackColor = System.Drawing.Color.Yellow; System.Windows.Forms.CheckBox check = new System.Windows.Forms.CheckBox(); check.Text = "checkbox"; HelloForm.Controls.Add(check); Application.Run(HelloForm); } } |
'C#' 카테고리의 다른 글
[GUI] Empty Form (0) | 2010.09.19 |
---|