ννλ μ¬λ¬ νλλ₯Ό λ΄μ μ μλ ꡬ쑰체μ΄λ€.
νμ§λ§ ννμ νμ μ΄λ¦μ΄ μλ€.
κ·Έλμ ννμ μμ© νλ‘κ·Έλ¨ μ 체μμ μ¬μ©ν νμμ μ μΈν λκ° μλ,
μ¦μμμ μ¬μ©ν λ³΅ν© λ°μ΄ν° νμμ μ μΈν λ μ ν©νλ€.
ννμ ꡬ쑰체μ΄λ―λ‘ κ° νμμ΄λ€.
κ° νμμ μμ±λ μ§μμ λ²μ΄λλ©΄ μ€νμμ μλ©ΈλκΈ° λλ¬Έμ νλ‘κ·Έλ¨μ μ₯κΈ°μ μΈ λΆλ΄μ μ£Όμ§ μλλ€λ μ₯μ μ΄ μλ€.
using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Console;
namespace Tuple
{
class MainApp
{
static void Main(string[] args)
{
// λͺ
λͺ
λμ§ μμ νν
//1. μ»΄νμΌλ¬κ° ννμ λͺ¨μμ λ³΄κ³ μ§μ νμμ κ²°μ νλλ‘ varλ₯Ό μ΄μ©νμ¬ μ μΈ
//2. ννμ κ΄νΈ μ¬μ΄μ λ κ° μ΄μμ νλλ₯Ό μ§μ ν¨μΌλ‘μ¨ λ§λ€μ΄μ§
var a = ("μνΌλ§¨", 9999);
WriteLine($"{a.Item1}, {a.Item2}"); //μνΌλ§¨, 9999
// λͺ
λͺ
λ νν
//1. μλμ κ°μ΄ 'νλλͺ
: κΌ΄'λ‘ νλμ μ΄λ¦μ μ§μ νμ¬ μ μΈνλ€.
var b = (Name: "λ°μν", Age: 17);
WriteLine($"{b.Item1}, {b.Item2}"); //λ°μν, 17
WriteLine($"{b.Name}, {b.Age}"); //λ°μν, 17
// λΆν΄
// μλμ κ°μ΄ ννμ μ μν λμλ λ°λμ λͺ¨μ΅μ νκ³ μλ€.
var (name, age) = b; // (var name, var age)=b;
WriteLine($"{name}, {age}"); //λ°μν, 17
// λΆν΄2
// νν λΆν΄λ₯Ό μ΄μ©νλ©΄ λ€μκ³Ό κ°μ΄ μ¬λ¬ λ³μλ₯Ό λ¨λ²μ μμ±νκ³ μ΄κΈ°νν μ μλ€.
// μ¦μμμ ννμ λ§λ€μ΄μ λΆν΄νλ κ²!
var (name2, age2) = ("λ°λ¬Έμ",34);
WriteLine($"{name2}, {age2}"); //λ°λ¬Έμ, 34
// λͺ
λͺ
λ νν = λͺ
λͺ
λμ§ μμ νν
b = a;
WriteLine($"{b.Name}, {b.Age}"); //μνΌλ§¨, 9999
//λΆν΄μ νΉμ νλλ 무μ
//1. μλμ κ°μ΄ _λ₯Ό μ΄μ©νλ©΄ λλ€.
var test = (one:"μλκΈ°" , two:999);
var(_, two) = test; //one νλλ 무μ
WriteLine($"{test.one}"); //μλκΈ°
WriteLine($"{test.two}"); //999
}
}
}
λͺ λͺ νμ§ μμ ννκ³Ό λͺ λͺ λ ννλΌλ¦¬ νλμ μμ νμμ΄ κ°μΌλ©΄ ν λΉμ΄ κ°λ₯νλ€.
using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Console;
namespace Tuple
{
class MainApp
{
static void Main(string[] args)
{
var unnamed = ("μνΌλ§¨",9999); //(string, int)
var named = (Name: "λ°μν", Age: 17); //(string, int)
named = unnamed;
WriteLine($"{named.Name}, {named.Age}");
}
}
}
ννμ΄ λΆν΄κ° κ°λ₯ν μ΄μ λ λΆν΄μλ₯Ό ꡬννκ³ μκΈ° λλ¬Έμ΄λ€.
λΆν΄μλ₯Ό ꡬννκ³ μλ κ°μ²΄λ₯Ό λΆν΄ν κ²°κ³Όλ₯Ό switch λ¬Έμ΄λ switch μμ λΆκΈ° 쑰건μ νμ©ν μ μλ€.
μ΄κ²μ μ΄λ €μ΄ λ§λ‘ μμΉ ν¨ν΄ 맀μΉμ΄λΌκ³ νλ€.
μλ³μλ λ°μ΄ν° νμμ΄ μλ λΆν΄λ μμμ μμΉμ λ°λΌ κ°μ΄ μΌμΉνλμ§λ₯Ό νλ¨νλ κ²μ΄λ€.
var alice = (job: "νμ", age: 17);
var discountRate = alice switch
{
("νμ", int n) when n < 18 => 0.2, //νμ & 18μΈ λ―Έλ§
("νμ", _) => 0.1, //νμ & 18μΈ μ΄μ
("μΌλ°", int n) when n < 18 => 0.1, //μΌλ° & 18μΈ λ―Έλ§
("μΌλ°", _) => 0.05, //μΌλ° & 18μΈ μ΄μ
_ =>0,
};
μ μ½λμμ allice κ°μ²΄κ° switch μμ μΈμλ‘ μ£Όμ΄μ‘κ³ ,
switch μμ aliceλ₯Ό λΆν΄ν΄μ λΆκΈ°λ₯Ό μννλ€.
μμΉ ν¨ν΄ λ§€μΉ λμ if(alice.job=="νμ" && alice.age<18) μ΄λ μ½λ λμ
κ°κ²°νλ©΄μλ μ½κΈ° μ’μ μ½λλ₯Ό μμ±ν μ μκ² λμλ€.
<μμ >->ν¨ν΄ λ§€μΉ λμκ°μ§ μμ
using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Console;
namespace PosisionalPatern
{
class MainApp
{
private static double GetDiscountRate(object client)
{
return client switch
{
("νμ", int n) when n < 18 => 0.2, // νμ & 18μΈ λ―Έλ§
("νμ", _) => 0.1, // νμ & 18μΈ μ΄μ
("μΌλ°", int n) when n < 18 => 0.1, //μΌλ° & 18μΈ λ―Έλ§
("μΌλ°", _) => 0.05, //μΌλ° & 18μΈ μ΄μ
_ => 0,
};
}
static void Main(string[] args)
{
var alice = (job:"νμ",age:17);
var bob = (job: "νμ", age: 23);
var charlie = (job: "μΌλ°", age: 15);
var dave = (job: "μΌλ°", age: 21);
WriteLine($"alice : {GetDiscountRate(alice)}");
WriteLine($"bob : {GetDiscountRate(bob)}");
WriteLine($"charlie : {GetDiscountRate(charlie)}");
WriteLine($"dave : {GetDiscountRate(dave)}");
}
}
}
μμ κ°μ μ½λ
using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Console;
namespace PosisionalPatern
{
class MainApp
{
private static double GetDiscountRate(object client)
{
switch(client)
{
case ("νμ", int n) when n < 18:
return 0.2; // νμ & 18μΈ λ―Έλ§
case ("νμ", _):
return 0.1; // νμ & 18μΈ μ΄μ
case ("μΌλ°", int n) when n < 18:
return 0.1; //μΌλ° & 18μΈ λ―Έλ§
case ("μΌλ°", _):
return 0.05; //μΌλ° & 18μΈ μ΄μ
default :
return 0;
}
}
static void Main(string[] args)
{
var alice = (job: "νμ", age: 17);
var bob = (job: "νμ", age: 23);
var charlie = (job: "μΌλ°", age: 15);
var dave = (job: "μΌλ°", age: 21);
WriteLine($"alice : {GetDiscountRate(alice)}");
WriteLine($"bob : {GetDiscountRate(bob)}");
WriteLine($"charlie : {GetDiscountRate(charlie)}");
WriteLine($"dave : {GetDiscountRate(dave)}");
}
}
}
'C# > μ΄κ²μ΄ C#μ΄λ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
33. μΈν°νμ΄μ€(1) (0) | 2022.02.14 |
---|---|
μ΄κ²μ΄ C#μ΄λ€ 7μ₯ μ°μ΅λ¬Έμ μ°Έκ³ (0) | 2022.02.14 |
31. ꡬ쑰체, λ³κ²½ λΆκ°λ₯ ꡬ쑰체(readonly struct) (0) | 2022.02.14 |
30. νμ₯ λ©μλ (0) | 2022.02.14 |
29. λΆν ν΄λμ€ (0) | 2022.02.11 |