Slide 1

Slide 1 text

6OJUZ$ೖ໳ _จ๏ฤ_ 6OJUZษڧձ !NBUUBL

Slide 2

Slide 2 text

ࠓ೔ͷϝχϡʔʂ

Slide 3

Slide 3 text

(FOFSJDT MBNCEBEFMFHBUF FWFOU FOVN FYUFOTJPO OVMMBCMF WBS ಗ໊ܕ OBNFTQBDF 1SPQFSUZ QBSUJBMUZQF ZJFME PVU -*/2 $จ๏

Slide 4

Slide 4 text

$จ๏ฤ

Slide 5

Slide 5 text

(FOFSJDT

Slide 6

Slide 6 text

List list = new List(); HFOFSJDT ૯শܕ ͕͋Δͱ͜͏ॻ͚Δ

Slide 7

Slide 7 text

ͳͥ૯শܕ͕͋Δͷ͔ʁ ૯শܕ͕ͳ͍ੈքΛߟ͑Δ List list = new List(); List list = new List(); ͭ·Γ͢΂ͯͷཁૉ͕PCKFDUܕͰอଘ͞ΕΔ

Slide 8

Slide 8 text

ͳͥ૯শܕ͕͋Δͷ͔ʁ int id = (int)list[0];
 string name = (string)list[0]; PCKFDUܕΛDBTUͯ͠औΓग़͢ඞཁ͕͋Δ int id = intList[0]; ܕ͕ܾ·͍ͬͯΕ͹ɺΩϟετෆཁͰ҆શʹॻ͚Δ IntList intList = new IntList();

Slide 9

Slide 9 text

IntList, StringList, HogeList, … Ͱ΋ܕ͝ͱʹΫϥεΛఆٛͨ͘͠ͳ͍ ͳͥ૯শܕ͕͋Δͷ͔ʁ List => List, List, … ͦ͜Ͱ۩ମతͳܕΛ໌ࣔͤͣϩδοΫ͕͔͚Δͱ ൚༻ੑ͕͔͍ͨɹ ͜ΕΛ࣮ݱ͢ΔͨΊɺந৅తͳܕهड़͕Ͱ͖Δ (FOFSJDT1SPHSBNNJOH

Slide 10

Slide 10 text

ͦͷଞಛ௃ $Ͱ͸૯শܕʹࡉ੍͔͍໿Λ͚ͭΒΕΔ 50%0XIFSFͷઆ໌ॻ͘ https://ja.wikipedia.org/wiki/C_Sharp#.E3.82.B8.E3.82.A7.E3.83.8D.E3.83.AA.E3.82.AF.E3.82.B9 $ͷ(FOFSJDT͸$ͷςϯϓϨʔτ΍+BWBͱ΋ҟͳΔ ࣮ߦ࣌ʹಛघԽ͞ΕΔ

Slide 11

Slide 11 text

MBNCEB EFMFHBUF

Slide 12

Slide 12 text

$Ͱ͸ؔ਺ͷܕએݴ͕Ͱ͖Δ delegate void Hello(string name); Ҿ਺ͱฦΓ஋͕ಉ͡Ͱ͋Ε͹ɺಉؔ͡਺ܕͱΈͳ͞ΕΔ

Slide 13

Slide 13 text

͍ΖΜͳؔ਺࣮૷͕ग़དྷΔ public class Person
 {
 void SayHello(string name)
 {
 Debug.Log("Hello, " + name);
 } void Start()
 { Hello hello = SayHello; }
 } )FMMPܕͷؔ਺

Slide 14

Slide 14 text

Hello hello = (string name) =>
 {
 Debug.Log("Hello, " + name);
 };
 Hello hello = delegate(string name)
 {
 Debug.Log("Hello, " + name);
 };
 ແ໊EFMFHBUF ແ໊EFMFHBUF লུ

Slide 15

Slide 15 text

ແ໊EFMFHBUF ߋʹলུ Hello hello = (name) =>
 {
 Debug.Log("Hello, " + name);
 }; ແ໊EFMFHBUF ߋʹߋʹলུ Hello hello = name => Debug.Log("Hello, " + name);

Slide 16

Slide 16 text

hello("John"); ݺͼग़͢ͱ͖͸͢΂ͯ

Slide 17

Slide 17 text

FWFOU

Slide 18

Slide 18 text

LFZXPSEͰFWFOU͕༧໿͞Ε͍ͯΔ ͋ΔEFMFHBUFܕΛFWFOUͱͯ͠એݴ͢Δ͜ͱ͕Ͱ͖Δ FWFOUʹ͸ෳ਺ͷؔ਺͕ొ࿥Ͱ͖Δ ొ࿥ղআ΋ग़དྷΔ event Hello hellos; hellos += SayHello;
 hellos += (name) => Debug.Log("Hello, " + name); 
 hellos -= SayHello;

Slide 19

Slide 19 text

ొ࿥͞Εͨؔ਺ΛҰؾʹݺͼग़͢͜ͱ͕Ͱ͖Δ hellos("John");

Slide 20

Slide 20 text

FOVN

Slide 21

Slide 21 text

public enum Animal
 {
 Monkey,
 Lion,
 Cat,
 Dog
 } ஋ͷྻڍ͕Ͱ͖Δ

Slide 22

Slide 22 text

public enum Animal : int
 {
 Monkey = 0,
 Lion,
 Cat,
 Dog
 } FOVN஋ʹରͯ͠਺஋Λඥ෇͚ΒΕΔ จࣈྻΛͻ΋෇͚ͨΓɺ ෳ਺ͷ৘ใΛͻ΋෇͚ͨΓ͸Ͱ͖ͳ͍

Slide 23

Slide 23 text

FOVN஋ͷҰཡΛͱΔ &OVN(FU7BMVFT UZQFPG "OJNBM FOVN਺஋ʹม׵ int number = (int)Animal.Cat; ਺஋FOVNʹม׵ Animal cat = (Animal)number;

Slide 24

Slide 24 text

FYUFOTJPO

Slide 25

Slide 25 text

public static class StringExtension
 {
 public static string MyUpperCase(this string str)
 {
 return str.ToUpper();
 }
 }
 TUBUJDDMBTTΛએݴ Ϋϥε໊͸ԿͰ΋ TUBUJDNFUIPEΛએݴ ୈҰҾ਺ʹ֦ு͍ͨ͠ܕͱUIJTΛ͚ͭΔ

Slide 26

Slide 26 text

string lower = “hello"; lower.MyUpperCase(); طଘͷΫϥεͰ΋ϝιουΛ௥Ճ͍͚ͯ͠Δ

Slide 27

Slide 27 text

OVMMBCMF

Slide 28

Slide 28 text

int? hoge = null;
 bool? fuga = null; QSJNJUJWFܕʹ͔͔ͭ͑͠ͳ͍ ܕͷલʹ Λ͚ͭΔ͜ͱͰOVMM͕୅ೖՄೳʹͳΔ FMWJTPQFSBUPS΋ػೳͱͯ͠ೖͬͯΔ int result = hoge ?? 1; OVMMͩͬͨΒӈͷϦςϥϧ Λબ୒

Slide 29

Slide 29 text

$͔ΒA A΋ಋೖ͞ΕΔͬΆ͍ http://stackoverflow.com/questions/4244225/c-sharp-if-null-then-null-expression

Slide 30

Slide 30 text

WBS

Slide 31

Slide 31 text

ܕਪ࿦͕ར༻Ͱ͖Δ$ͷBVUPʹ૬౰͢Δػೳ var hoge = "string";
 var fuga = 1; ͍͍ͪͪܕΛࠨลͰࢦఆ͠ͳͯ͘΋ਪ࿦ͯ͘͠ΕΔ

Slide 32

Slide 32 text

ಗ໊ܕ

Slide 33

Slide 33 text

ܕΛએݴͤͣɺϑΟʔϧυ஋ʹ҆શʹΞΫηεͰ͖Δ var rem = new { Name = "Rem", Age = 17 };
 var ram = new { Name = "Ram", Age = 17 }; Assert.AreEqual(rem.GetType(), ram.GetType()); 'JFME໊͕ҰॹͳΒܕ΋ಉ͡ Debug.Log("Hello, " + rem.Name);

Slide 34

Slide 34 text

OBNFTQBDF

Slide 35

Slide 35 text

OBNFTQBDFΛઃఆ͢Δ͜ͱͰ Ϋϥε໊ͷিಥΛආ͚ΒΕΔ namespace My
 {
 public class Sample
 {
 }
 }
 
 namespace Other
 {
 public class Sample
 {
 }
 }

Slide 36

Slide 36 text

ଞͷOBNFTQBDFͷΫϥεʹΞΫηε͢Δʹ͸ var sample = new My.Sample(); QSFpYͰOBNFTQBDFΛ͚ͭΔ͔ VTJOHΛ࢖ͬͯར༻͢ΔએݴΛ͢Δ using My;

Slide 37

Slide 37 text

1SPQFSUZ

Slide 38

Slide 38 text

public class Person
 {
 private string _name = string.Empty;
 
 public string Name
 {
 get { return _name; }
 set { _name = value; }
 }
 }
 ܕએݴͷޙʹAHFUAATFUAͱ͍͏༧໿ޠΛ࢖ͬͯ HFUUFSTFUUFSͷΞΫηε੍ޚ͕Ͱ͖Δ

Slide 39

Slide 39 text

public class Person
 {
 private string _name = string.Empty;
 
 public string Name
 {
 get { return _name; }
 private set { _name = value; }
 }
 }
 TFUUFSΛQSJWBUFʹͯ͠ॻ͖ࠐΊͳͨ͘͠Γɺ HFUTFU͢Δͱ͖ʹԿ͔ॲཧΛهड़ͨ͠Γग़དྷΔ

Slide 40

Slide 40 text

public class Person
 {
 public string Name { get; private set; }
 } ୯ʹHFUTFU͢Δ͚ͩͳΒলུه๏͕ར༻Ͱ͖Δ HFUUFSTFUUFS͕ఆٛͰ͖Δ͜ͱͰ,70͕ग़དྷΔͷ͕ 1SPQFSUZͷಛ௃

Slide 41

Slide 41 text

1BSUJBM

Slide 42

Slide 42 text

// Partial Class
 public partial class SamplePartial : MonoBehaviour
 {
 void Start()
 {
 }
 }
 
 public partial class SamplePartial : MonoBehaviour
 {
 void Update()
 {
 }
 }
 AQBSUJBMAΛ͚ͭΔ͜ͱͰ࣮૷ϑΝΠϧ෼཭͕Ͱ͖Δ

Slide 43

Slide 43 text

ZJFME

Slide 44

Slide 44 text

foreach (int i in ListupNumbers())
 {
 Debug.Log("number: " + i);
 } IEnumerable ListupNumbers()
 {
 yield return 0;
 yield return 1;
 yield return 2;
 } -JTUͱ͔"SSBSZΛOFX͠ͳͯ͘΋ ͜Μͳײ͡ͰZJFMESFUVSOͯ͋͛͠Δͱ ̍ͭͮͭཁૉΛऔಘ͢ΔΑ͏ͳ࢓૊Έ͕؆୯ʹ͔͚Δ

Slide 45

Slide 45 text

Կ͕ϝϦοτ͔ʁ ཁૉશମΛ֨ೲ͢ΔϝϞϦ͕ඞཁͳ͍ ܁Γฦ͠ཁૉΛऔಘ͢ΔΑ͏ͳॲཧ͕εοΩϦॻ͚Δ

Slide 46

Slide 46 text

ͲͷΑ͏ʹ࣮ߦ͞ΕΔʁ using (IEnumerator it = ListupNumbers().GetEnumerator())
 {
 while (it.MoveNext())
 {
 Debug.Log("number: " + it.Current);
 }
 } .PWF/FYU Ͱ͖Δ͔͗ΓJUFSBUJPO͕·ΘΔ

Slide 47

Slide 47 text

JUFSBUJPOΛதஅ͢Δʹ͸ʁ IEnumerable ListupNumbers()
 {
 yield return 0;
 yield return 1;
 yield break;
 yield return 2; // ignored
 } ZJFMECSFBL͢Ε͹͍͍

Slide 48

Slide 48 text

6OJUZͷ$PSPVUJOFͱͷରԠ public class Sample : MonoBehaviour
 {
 void Start()
 {
 StartCoroutine(ListupNumbers());
 StartCoroutine(ListupNumbers());
 }
 
 void Update()
 {
 Debug.Log("Updated");
 }
 
 IEnumerator ListupNumbers()
 {
 for (int i = 0; i < 5; i++)
 {
 Debug.Log(i.ToString());
 yield return i;
 }
 }
 }

Slide 49

Slide 49 text

ॳΊ͚ͩ VQEBUF͕౓ݺ͹ΕΔ ͷ͸λΠϛϯάͷ໰୊ ຖϑϨʔϜ͝ͱʹ A.PWF/FYU A͞ΕͯΔ

Slide 50

Slide 50 text

PVU

Slide 51

Slide 51 text

void Increment(out int v)
 {
 v = v + 1;
 } void Set(out int v)
 {
 v = 1;
 } int i = 0;
 Set(out i); PVUΛ͔ͭ͏ͱࢀরΛ౉ͯ͠ม਺΁ͷॻ͖ࠐΈ͕Ͱ͖Δ ͨͩ͠PVU͕͍ͭͨม਺ͷ஋͸औಘͰ͖ͳ͍ ࢖͍ํ ӈลͰWΛར༻ͯ͠ΔͷͰμϝ

Slide 52

Slide 52 text

-*/2

Slide 53

Slide 53 text

IUUQXXXTMJEFTIBSFOFUGVNJUBLBZBNBEBDMJOR