C#μμλ var ν¨ν΄μ μ¬μ©ν μ μμ΅λλ€. κ°μ²΄(object)ννλ‘ λ°μ κ°μ var ν€μλλ₯Ό ν΅ν΄ κ°λ¨ν μΆλ ₯νκ±°λ μ²λ¦¬νλ λ°©μμ λλ€. μ΄ ν¨ν΄μ μΌλ°μ μΌλ‘ λ§μ΄ μ¬μ©νμ§ μμ§λ§ μ΄λ¬ν κ²λ€μ΄ μꡬλ.. μ΄ν΄λ§ νλλ‘ νκ² μ΅λλ€.
1. μ묡μ νμ μ΄λ 무μμΌκΉ?
μ묡μ νμ μ΄λ νμ μ λͺ μμ μΌλ‘ μ μΈνμ§μκ³ , μ»΄νμΌλ¬κ° κ°μ λ³΄κ³ μΆλ‘ νλ λ°©μμ μλ―Έν©λλ€. μ΄λ₯Ό C#μμλ var ν€μλλ‘ κ΅¬νν μ μμ΅λλ€.
κ°λ¨ν μμ λ‘:
object obj = "Hello, World!";
if(obj is var result)
{
Console.WriteLine(result); // "Hello, World!" μΆλ ₯
}
μ¬κΈ°μ obj is var resultλ objμ κ°μ result λ³μμ κ·Έλλ‘ ν λΉνλ λ°©μμ λλ€. varλ μ»΄νμΌλ¬κ° λ³μμ νμ μ μλμΌλ‘ μΆλ‘ νλ―λ‘, objμ varλ νμ νμ μ΄ μΌμΉνκ² λ©λλ€. λ°λΌμ is μ°μ°μ νμ μ°Έ(true)μ΄ λ©λλ€. μ¦, νμ μ κ΄κ³μμ΄ objμ κ°μ΄ κ·Έλλ‘ resultμ λμ λκ³ , μ΄νμλ result λ³μλ₯Ό ν΅ν΄ ν΄λΉ κ°μ μ¬μ©ν μ μμ΅λλ€.
μ묡μ νμ μ μ리
μ묡μ νμ μ΄λ μ»΄νμΌλ¬κ° μ λ ₯λ κ°μ κΈ°λ°μΌλ‘ λ³μμ νμ μ μλμΌλ‘ μΆλ‘ νλ κ²μ μλ―Έν©λλ€. var ν€μλλ₯Ό μ¬μ©νμ¬ νμ μ λͺ μνμ§μκ³ λ λ³μλ₯Ό μ μΈν μ μμ΅λλ€. μμμλ μΈκΈνλ―μ΄ μ»΄νμΌλ¬κ° μ λ ₯λ κ°μ λ³΄κ³ λ΄λΆμ μΌλ‘ μΆλ‘ ν©λλ€.
μλ₯Ό λ€μ΄, μλμ κ°μ μ½λκ° μλ€κ³ νμλ©΄
var x = 10; // xλ μ»΄νμΌλ¬μ μν΄ int νμ
μΌλ‘ μΆλ‘ λ©λλ€.
var str = "λ¬Έμμ΄"; // strμ string νμ
μΌλ‘ μΆλ‘ λ©λλ€.
μ¬κΈ°μ xλ λͺ μμ μΌλ‘ int λΌκ³ μ μΈνμ§ μμμ§λ§, κ° 10μ κΈ°λ°μΌλ‘ μ»΄νμΌλ¬κ° xλ₯Ό int νμ μΌλ‘ κ°μ£Όν©λλ€. λ§μ°¬κ°μ§λ‘ "λ¬Έμμ΄" κ°μ κΈ°λ°μΌλ‘ strμ string νμ μΌλ‘ μΆλ‘ μ ν©λλ€.
μ΄μ²λΌ νμ μΆλ‘ μ κ°μ κΈ°λ°μΌλ‘ λ³μμ νμ μ μλμΌλ‘ κ²°μ νκ³ , JavsScriptμ λμ νμ΄νκ³Ό μ μ¬ν μ μ΄ μμ΅λλ€.
μμ : μ묡μ νμ μ νμ©
μλλ κ°λ¨ν C# μ½λ μμ μ λλ€:
static void Main(string[] args)
{
var x = 10;
var y = 5;
var str = "λ¬Έμμ΄";
Console.SetCursorPosition(x, y);
Console.WriteLine(str);
}
μ μ½λλ x, y, strμ νμ μ λͺ μμ μΌλ‘ μ μΈνμ§ μκ³ λ μ½λλ₯Ό μμ±ν μ μκ² ν΄μ€λλ€. μ»΄νμΌλ¬κ° κ°μ κΈ°λ°μΌλ‘ κ° λ³μμ νμ μ μΆλ‘ ν΄μ£ΌκΈ° λλ¬Έμ λλ€.
xλ κ° 10μ κΈ°λ°μΌλ‘ int νμ μΌλ‘ μΆλ‘ λκ³ , y μμ κ° 5λ₯Ό κΈ°λ°μΌλ‘ int νμ μΌλ‘ μΆλ‘ λ©λλ€. strμ λ¬Έμμ΄ "λ¬Έμμ΄"μ κΈ°λ°μΌλ‘ string νμ μΌλ‘ μΆλ‘ λ©λλ€.
λν μ½λμμ μ¬μ©λ SetCursorPosition() λ©μλλ μ½μμμ μΆλ ₯ μμΉλ₯Ό μ€μ νλ κΈ°λ₯μ ν©λλ€. μ¬κΈ°μ xμ yκ°μ΄ μ½μ νλ©΄μ μ’νλ‘ μ¬μ©λκ³ , μ§μ λ μμΉ(10, 5) μ’νμ str λ³μμ κ° "λ¬Έμμ΄"μ μΆλ ₯ν΄ μ€λλ€.
2. μ묡μ νμ μ μ¬μ©νλ μ΄μ
var νμ μ μ¬μ©νλκΉ νΈλ¦¬ν©λλ€. νμ§λ§ var νμ μ λ¨μ μ νμ μ΄ λͺ ννκ² λλ¬λμ§ μμ μ μλ€λ μ μ λλ€. κ·Έλ λ€λ©΄, μ묡μ νμ μ μ¬μ©νλ μ΄μ λ 무μμΌκΉμ?
κ·Έ μ΄μ λ λ°νμ μ μ΄λ€ κ°μ΄ λ€μ΄μ¬μ§ 미리 μ μ μμ λ μ μ©νκΈ° λλ¬Έμ λλ€.
νΉν κ°μ²΄λ₯Ό μμ±νλλ° νμ μ΄ λͺ νν μ μ μκ±°λ, λ무 κΈΈκ³ λ³΅μ‘ν νμ μ μ¬μ©ν΄μΌ ν λ varλ₯Ό νμ©νλ©΄ μ½λλ₯Ό κ°κ²°νκ² μμ±ν μ μμ΅λλ€.
μλ₯Ό λ€μ΄, μλμ κ°μ Listμ μ λ€λ¦ νμμ μ½λκ° μλ€λ©΄:
List<MyNameSpace.MyDefinedClass> list = new List<MyNameSpace.MyDefindClass>(10);
μ΄ μ½λμμ λ³μ listμ νμ μ λͺ νν List<MyNameSpace.MyDefinedClass>λ‘ μ μΈλμμ΅λλ€. νμ§λ§ μ΄μ²λΌ νμ μ λͺ μμ μΌλ‘ μμ±ν΄μΌ ν λ, μ’λ³κ³Ό μ°λ³μ λμΌν νμ μ λ°λ³΅μ μΌλ‘ μ¬μ©νλ κ²μ λΆνμνκ³ λ²κ±°λ‘μΈ μ μμ΅λλ€.
μ΄λ₯Ό varλ‘ κ°μννλ©΄ μλμ κ°μ΄ μμ±ν μ μμ΅λλ€.
var list = new List<MyNameSpace.MyDefindClass>(10);
λ μ½λμ κ²°κ³Όλ λμΌνμ§λ§, varλ₯Ό μ¬μ©νλ©΄ μ½λκ° μ§§μμ§κ³ λΆνμν λ°λ³΅μ΄ μ¬λΌμ§λλ€.
λ°λΌμ var λ₯Ό μ¬μ©ν λλ νμ μ΄ λͺ νν μΆλ‘ κ°λ₯ν κ²½μ°μλ§ μ¬μ©νλ κ²μ΄ μ’μ΅λλ€.
3. μ묡μ νμ κ³Ό λλ€μμ μ°κ²°κ³ 리
μ묡μ νμ μ μ΄ν΄νλ©΄, λλ€μμ λ μ½κ² μ΄ν΄ν μ μμ΅λλ€. λλ€μμ κ°λ¨ν λ§ν΄ μ΅λͺ λ©μλλ₯Ό λ κ°κ²°νκ² ννν λ°©μμ λλ€. κ²°κ΅ JavaScriptμ νμ΄ν ν¨μ(=>)μ λΉμ·ν κ°λ μΌλ‘ λ°μ νκ² λ©λλ€.
λλ€μμ κΈ°λ³Ένμ:
(parameter) => expression;
μλ₯Ό λ€μ΄, μλμ κ°μ μ΅λͺ λ©μλλ₯Ό λλ€μμΌλ‘ ννν μ μμ΅λλ€.
μ΅λͺ λ©μλ:
delegate(int x) {return x * x};
λλ€μ:
x => x * x;
λλ€μμ μ묡μ νμ μΆλ‘ μ κΈ°λ°μΌλ‘ νκ³ , μ΄λ₯Ό ν΅ν΄ λ©μλ μ μΈμ κ°μνν μ μμ΅λλ€.
μ묡μ νμ μ μ½λλ₯Ό κ°κ²°νκ² λ§λλλ€. νΉν 볡μ‘ν νμ μ λ€λ£¨κ±°λ, λ°ν νμ μ΄ λͺ ννμ§ μμ λ(무μμ return νλμ§ λͺ¨λ₯΄λ κ²½μ°), var νμ μΌλ‘ λ°μΌλ©΄ μμμ μ묡μ νμμΌλ‘ λ°μμ€λλ€. μ΄ν λλ€μμ΄λ μ΅λͺ λ©μλμ κ°λ μ λν΄μλ μ½κ² μ΄ν΄ν μ μμ΅λλ€.
μμ½
βοΈ μ묡μ νμ μ var ν€μλλ‘ κ΅¬νλκ³ , μ»΄νμΌλ¬κ° νμ μ μΆλ‘ νλ€.
βοΈ μ½λ κ°λ μ±μ λμ΄κ³ λ°λ³΅μ μ€μ΄κΈ° μν΄ μ¬μ©λλ€.
βοΈ νμ§λ§ νμ μ΄ λͺ ννμ§ μμ κ²½μ° νΌλμ μ€ μ μλ€.
βοΈ μ묡μ νμ μ λλ€μκ³Ό λ°μ ν κ΄λ ¨μ΄ μλ€.
'C#' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[C#] ASP.NET 4.0 WebForms Global.asax νμΌ (0) | 2025.02.28 |
---|---|
[C#] ASP.NETμ TCP μ°κ²° μ€μ (0) | 2025.02.17 |
[C#] ASP.NET 4.0 λ κ±°μ μ½λ web.config νμΌ λΆμ (0) | 2024.12.30 |
[C#] Equals() λ©μλμ == μ°μ°μ μ°¨μ΄ (0) | 2024.12.15 |
[C#] String.IsNullOrEmpty() μ μ λ©μλλ (0) | 2024.12.15 |