C# - μ°μ°μμ λ°μ±
C# - μ°μ°μμ λ°μ±
μ°μ°μμ€μλ μ°μ μ°μ°μ, κ΄κ³μ°μ°μ λ± μ¬λ¬κ°μ§κ° μμ§λ§, μ΄ μ₯μμλ λΉνΈ μ°μ°μ, 쑰건 μ°μ°μ, μ§μ μ΄ μ°μ°μμ λν΄μ μμλ³Ό κ²μ΄λ€.
λΉνΈ μ°μ°μ
- λΉνΈ λ¨μλ‘ μ°μ°μ μννλ μ°μ°μ
- νΌμ°μ°μλ λ°λμ μ μν
- μΌμͺ½ μ΄λ(<<), μ€λ₯Έμͺ½ μ΄λ(>>), 1μ 보μ(~)
λΉνΈ μ°μ°μμλ μ°μ μμκ° μ‘΄μ¬νλλ°, λ Όλ¦¬κ³±(%), λ Όλ¦¬ν©(|), λΉνΈ λ°°νμ λ Όλ¦¬ν©(^) μμΌλ‘ μ°μ μμκ° λλ€.
μ¦ λ Όλ¦¬κ³±μ΄ μ μΌ μ°μ μ μνλλ€.
ex)
class BitOperator{
public static void main() {
int x=9, y=3;
Console.WriteLine(x + "&" + y +"=" + (x&y));
Console.WriteLine(x + "^" + y +"=" + (x^y));
Console.WriteLine("~10 = " + (~10));
}
}
κ²°κ³Ό κ° :
9&3 = 1
9^3 = 10
~10 = -11
λΉνΈ μ°μ°μλ 2λΉνΈλ‘ λ°κΎΌλ€ κ³μ°νκ³ 10μ§μλ‘ μΆλ ₯κ°μ λ΄λλλ€.
9λ 1001μ΄κ³ , 3μ 0011μ΄λ€. μ΄μ λ Όλ¦¬κ³±(&)μ νλ€λ©΄ 0001μ΄ λκ³ 10μ§μλ‘ λ°κΎΈλ©΄ 1μ΄ λλ€.
쑰건 μ°μ°μ
- ifλ¬Έμ₯κ³Ό κ°μ μΌν μ°μ°μ
- νν : max = x > y ? x: y;
xκ° yλ³΄λ€ ν¬λ€λ©΄ xλ₯Ό maxμ μ μ₯νκ³ κ·Έλ μ§ μλ€λ©΄ yμ μ μ₯νλ λ°©μμ΄λ€.
ex)
class Operator {
public static void main() {
int a, b, c;
int m;
Console.Write("Enter Three number :");
a = Console.Read() - '0';
b = Console.Read() - '0';
c = Console.Read() - '0';
m = (a>b) ? a: b;
m = (m>c) ? m : c;
Console.WriteLine("The largest number = " +m);
}
}
Console.Read()λ μ λ ₯ν¨μμ΄λ€. '0'μ λΉΌμ£Όλ μ΄μ λ μ λ ₯λ°μ λ λ¬Έμλ‘ μ λ ₯λ°κΈ° λλ¬Έμ μμ€ν€μ½λλΌλ¦¬ λΉΌμ€λ€λ©΄ μ€μ μ«μκ° λ¨κΈ° λλ¬Έμ΄λ€.
μμ μΌνμ°μ°μλ₯Ό ν΅ν΄ mκ°μ΄ κ°μ₯ ν° κ°μ΄ μ μ₯λ κ²μ μ μ μλ€.
μ§μ μ΄ μ°μ°μ
- μ°μ°μ μλ―Έλ₯Ό C# μ§μ μ΄λ‘ λνλΈ μ°μ°μ
μ¦ isλ asκ°μ C#μ§μ μ΄λ‘ λνλΈ κ²μ μλ―Ένλ€.
λ°λ‘ μμ λ₯Ό ν΅ν΄ νμΈν΄λ³΄μ.
ex)
public class Operator{
static void IsOperator(object obj) {
Console.WriteLine(obj + "is int :" + (obj is int));
Console.WriteLine(obj + "is string: " + (obj is string));
}
static void AsOperator(object obj) {
Console.WriteLine(obj + "as string == null :" + (obj as string == null));
}
public static void Main() {
IsOperator(10);
IsOperator("ABC");
AsOpertaor(10);
AsOperator("ABC);
}
}
isλ asλ boolνμ μΌλ‘ 리ν΄ν΄μ€λ€.
10μ intκ° λ§μΌλ―λ‘ Trueκ° stringμ μλλ―λ‘ Falseκ° λμ¨λ€.
ABCλ μμ κ°μ΄ intκ° μλλ―λ‘ False stringμ μλλ―λ‘ Trueκ° λμ¨λ€.
λ¬Έμ λ asμ΄λ€.
10μ stringν΄λμ€ κ°μ²΄κ° μ무κ²λ μ°Έμ‘°νκ³ μμ§ μκΈ°λλ¬Έμ nullνμ λ Trueκ° λ§λ€. 10μ λ¬Έμμ΄μ΄ μλ κ·Έμ "κ°"μ΄κΈ° λλ¬Έμ΄λ€.
νμ§λ§ "ABC"λ ""κ° λ€μ΄κ°λ―λ‘ λ¬Έμμ΄μ΄ λκ³ , μ΄λ stringν΄λμ€ κ°μ²΄κ° λλ€. μ¦ nullκ°μ΄ μλκΈ° λλ¬Έμ Falseκ° λλ€.
λ°μ±κ³Ό μΈλ°μ±
λ°μ±
- κ°νμ λ°μ΄ν°λ₯Ό μ°Έμ‘°νμΌλ‘ λ³ννλ κ²
- μ»΄νμΌλ¬μ μν΄ λ¬΅μμ μΌλ‘ νν΄μ§
μΈλ°μ±
- μ°Έμ‘°νμ λ°μ΄ν°λ₯Ό κ°νμΌλ‘ λ³ννλ κ²
- λ°λμ μΊμ€ν μ ν΅νμ¬ λͺ μμ μΌλ‘ νν΄μ§
- λ°λμ λ°μ±λ λ νμΌλ‘ μΈλ°μ±μ ν΄μ£Όμ΄μΌ ν¨.
ex)
class Boxing{
public static void Main() {
int foo = 526;
object bar = foo; //λ°μ±
Console.WriteLine(bar);
try{
double d = (short)bar; //μλ κ°νμ μλ£ν x --> μ€λ₯
Console.WriteLine(d);
}catch (InvalidCastException e) {
Console.WriteLine(e + "Error");
}
}
}
μ€ν κ²°κ³Ό:
526
System.InvalidCastException:
at Boxing.Main() Error
μΈλ°μ±μ ν λμλ λ°μ±λ λ νμΌλ‘ μΈλ°μ±μ ν΄μ£Όμ΄μΌ μ μμ μΌλ‘ μ²λ¦¬κ° λλ€.