https://msdn.microsoft.com/en-us/library/yz2be5wk.aspx
int i = 123;
object o = i; // boxing (값 형식 -> 참조 형식)
int j = (int) o; // unboxing (참조 형식 -> 값 형식)
Just another Kyoung Shin Park’s Lectures Sites site
https://msdn.microsoft.com/en-us/library/yz2be5wk.aspx
int i = 123;
object o = i; // boxing (값 형식 -> 참조 형식)
int j = (int) o; // unboxing (참조 형식 -> 값 형식)
// String + operator
string str = “123”;
Console.WriteLine(“str={0}”, str + 70); // 12370
Console.WriteLine(“str={0}”, str + “70”); // 12370
// Int + operator
int i = 123;
Console.WriteLine(“i={0}”, i + 70); // 193
Console.WriteLine(“i={0}”, i + 70.50); // 193.50
static double Add(double a, double b)
{
return (a + b);
}
static void Main(string[] args)
{
do
{
Console.Write(“a를 입력하세요: “);
string str = Console.ReadLine();
double a;
bool result = double.TryParse(str, out a);
Console.Write(“b를 입력하세요: “);
str = Console.ReadLine();
double b;
result = double.TryParse(str, out b);
double c = Add(a, b);
Console.WriteLine(“결과는 {0}”, c);
Console.WriteLine(“다시 하려면 ENTER 키를 누르시고 종료하려면 ESC 키를 누르세요”);
} while (Console.ReadKey().Key != ConsoleKey.Escape);
}
int value; // needed for TryParse
string str; // needed for ReadLine
Console.Write(“0부터 100까지 숫자를 입력하세요: “);
str = Console.ReadLine();
while ((!int.TryParse(str, out value)) || (value < 0 || value > 100))
{
Console.Write(“다시 0부터 100까지 숫자를 입력하세요: “);
str = Console.ReadLine();
}
int result = int.Parse(str);
Console.WriteLine(“입력된 숫자=” + result);
http://www.codeproject.com/KB/cs/AgileWare_Convert_Int32.aspx
Convert.ToInt32(string s)는 내부적으로 Int32.Parse(string s)을 불러서 string을 32-bit signed integer로 변환시켜주는 메소드
Int32.Parse(string s)는 strng을 32-bit signed integer로 변환시켜주는 메소드
그러나 만약 s가 null일 경우 ArgumentNullException을 냄
또한 s가 integer가 아닐 경우 FormatException을 냄
또한 s가 integer의 MinValue또는 MaxVale를 넘칠 경우 OverflowException을 냄
Int32.TryParse(string s, out int i)는 string을 32-bit signed integer로 변환하여 out 에 보내주는 메소드로 성공하면 true를 반환
따라서 만약 s가 null일 경우 ArgumentNullException을 내지않고 false와 out으로 0을 반환
또한 s가 integer가 아닐 경우 FormatException을 내지않고 false와 out으로 0을 반환
또한 s가 integer의 MinValue또는 MaxVale를 넘칠 경우 OverflowException을 내지않고 false와 out으로 0을 반환
Formatting Custom Numeric Format Strings http://msdn.microsoft.com/en-us/library/0c899ak8.aspx
Formatting Numeric Format Strings (Alignment)
-Integer http://www.csharp-examples.net/string-format-int/
-Double http://www.csharp-examples.net/string-format-double/
-DateTime http://www.csharp-examples.net/string-format-datetime/
-Align String with Spaces http://www.csharp-examples.net/align-string-with-spaces/
-Indent String with Spaces http://www.csharp-examples.net/indent-string-with-spaces/
-IFormatProvider http://www.csharp-examples.net/iformatprovider-numbers/
-Custom IFormatProvider http://www.csharp-examples.net/custom-iformatprovider/
Substring(Int32) | 이 인스턴스에서 부분 문자열을 검색합니다. 부분 문자열은 지정된 문자 위치에서 시작됩니다. |
Substring(Int32, Int32) | 이 인스턴스에서 부분 문자열을 검색합니다. 부분 문자열은 지정된 문자 위치에서 시작하고 길이도 지정되어 있습니다. |
string str = “Hi, Welcome to HCI Programming II! Hi”;
Console.WriteLine(“str의 substring(3) {0}”, str.Substring(3)); // ” Welcome to HCI Programming II! Hi” 3번째 위치에서 떼어냄
Console.WriteLine(“str의 substring(14, 20) {0}”, str.Substring(14,20)); // ” HCI Programming II!” 14번째 위치에서부터 20개 만큼 떼어냄
C++에서는 struct와 class간에 차이가 거의 없으며, 차이점은 아무런 명시를 하지 않았을 때 class는 멤버가 private 권한을 가지고, struct는 멤버가 public 권한을 가진다.
C#에서는 struct와 class가 유사하나 매우 다른 특징을 가진다.
-C# struct는 Value Type (값 형식)으로, 즉 stack영역에 데이터를 생성해서 사용함
-C# struct는 Default Constructor (기본생성자)나 Destructor(소멸자)선언할 수 없음
-C# struct는 다른 struct/class를 상속받을 수 없으며 파생시킬수도 없음 (따라서, protected는 선언할 수 없음)
-C# struct는 interface를 구현할 수 있음
-C# struct는 nullable type으로 사용할 수 있음
-C# struct는 일반적으로 new를 사용해서 객체를 생성하나 (예: Person p = new Person();),
stack영역에 데이터를 생성해서 사용함
public struct Point
{
int x = 1; //Illegal: cannot initialize field
int y;
public Point() { } //Illegal: cannot have parameterless constructor
public Point(int x) { this.x = x; } //Illegal: must assign field y
}
http://www.codeproject.com/Articles/8612/Structs-in-C