C#] yield , IEnumerator , IEnumerable
using System;
using System.Text;
using System.Collections.Generic;
namespace MyPractice
{
public class MyEnumerator
{
private int data = { 10, 20, 30, 40, 50 };
public IEnumerator<int> GetEnumerator() //IEnumerator **GetEnumerator
{
// **IEnumerator<T>
foreach (int k in data)
yield return k;
}
}
class Program
{
static IEnumerable<int> YieldNumber() //IEnumerable
{
yield return 10;
yield return 20;
yield return 30;
}
static void Main(string args)
{
/*
* 2019.04.17
* by 4ru4ka
*/
foreach (int ynum in YieldNumber())
Console.WriteLine(ynum);
// for use IEnumerator
var ie = new MyEnumerator();
foreach (int lnum in ie)
Console.WriteLine(lnum);
}
}
}
/*
* OUTPUT:
*
10
20
30
10
20
30
40
50
*/
C#] Loop
using System;
using System.Text;
using System.Collections.Generic;
namespace MyPractice
{
class Program
{
static void Main(string args)
{
/*
* 2019.04.17
* by 4ru4ka
*/
// for Loop
for (int i = 0; i < 10; i++)
Console.WriteLine(i);
// foreach
string array = new string[] { "Hello", "I'm", "4ru4ka" };
foreach (string s in array)
Console.WriteLine(s);
// for < foreach
string[,,] carr = new string[,,]
{
{ {"a11","a12"},{"b11","b12"} },
{ {"c11","c12"},{"d11","d12"} }
};
foreach (string s in carr)
Console.WriteLine(s);
// while, do~while
int mi = 0;
while(mi < 10)
{
Console.WriteLine(mi);
mi++;
}
do
{
Console.WriteLine(mi);
mi--;
} while (mi >= 0);
// Loop with List
// using System.Collections.Generic; << for List
List<char> imsiList = new List<char>();
imsiList.Add('A');
imsiList.Add('B');
imsiList.Add('C');
imsiList.Add('D');
foreach (char a in imsiList)
Console.WriteLine(a);
}
}
}
C#] if, switch
using System;
using System.Text;
namespace MyPractice
{
class Program
{
static void Main(string[] args)
{
/*
* C# - if, switch
* 2019.04.05
* by 4ru4ka
*/
if (args.Length != 1)
{
Console.WriteLine("program /option");
return;
}
bool switch1 = false;
bool switch2 = false;
string cw = "This is default";
string opt = args[0];
switch (opt.ToLower())
{
case "/sw1":
switch1 = true;
break;
case "/sw2":
case "/switch2": //case: case:
switch2 = true;
break;
default:
Console.WriteLine(cw);
break;
}
}
}
}
C#] Operator
using System;
using System.Text;
namespace MyPractice
{
class Program
{
static void Main(string[] args)
{
/*
* C# - Operator
* 2019.04.01
* by 4ru4ka
*/
//Shift operator
int i = 2;
i = i << 5;
int j = 3;
j = j << 5;
Console.WriteLine("{0} , {1}", i, j);
// ?? Operator (over C# 3.0)
string str = null;
string s = str ?? "Hello"; // when str is null, put "Hello" in to s.
Console.WriteLine(s);
}
}
}
C#] enum & enum flag
using System;
using System.Text;
namespace MyPractice
{
class Program
{
enum Univ
{
Meiji, // 0
Aoyama, // 1
Rikkyo, // 2
Chuo, // 3
Hosei = 10 // 10
}
[Flags]
enum Univf
{
Meiji = 1,
Aoyama = 2,
Rikkyo = 4,
Chuo = 8,
Hosei = 16
}
static void Main(string[] args)
{
/*
* C# - enum , flag enum
* 2019.04.01
* by 4ru4ka
*/
// enum
Univ myUniv;
myUniv = Univ.Meiji; // 0
// enum -> int
int univVal = (int)myUniv;
if (myUniv == Univ.Meiji)
{
Console.WriteLine("Welcome to Meiji");
}
//flag enum
Univf uf = Univf.Chuo | Univf.Hosei; // OR演算子でufの中にChuo,Hosei両方を同時に保存。
if *1 // HasFlag returns true / false whether uf has a Hosei flag
{
Console.WriteLine(uf.ToString());
}
}
}
}
}