戻り値の無いメソッドでもreturnは使える
using System;
namespace ClassSample
{
class Program
{
static void Main(string[] args)
{
Print12Hour(5);
Print12Hour(18);
Print12Hour(25);
}
static void Print12Hour(int hour)
{
if (hour < 0 || 24 < hour)
{
Console.WriteLine("正しい値ではありません");
return;
}
if (hour <= 12)
{
Console.WriteLine("午前{0}時です", hour);
}
else
{
Console.WriteLine("午後{0}時です", hour - 12);
}
}
}
}
スコープ
using System;
namespace ClassSample
{
class Program
{
static void Main(string[] args)
{
var array = new int[] { 5, 8, 4, 9, -3, 6 };
var foundIndex = -1;
for (var i = 0; i < array.Length; i++)
{
if (array[i] < 0)
{
foundIndex = i; //変数iはforループの外では見えないのでfoundIndexに代入
break;
}
}
if (foundIndex >= 0)
{
Console.WriteLine($"配列最初のマイナス値は{array[foundIndex]}です");
}
else
{
Console.WriteLine("配列にマイナス値はありませんでした");
}
}
}
}
インスタンスプロパティ,インスタンスメソッド
using System;
namespace ClassSample
{
class Program
{
static void Main(string[] args)
{
var date = new DateTime(2020, 11, 7);
var year = date.Year;
var month = date.Month;
var day = date.Day;
Console.WriteLine("{0}年{1}月{2}日", year, month, date);
}
}
}
using System;
namespace ClassSample
{
class Program
{
static void Main(string[] args)
{
var date = new DateTime(2020, 11, 7);
var date1 = date.AddDays(1); //1日後を求める
var date2 = date.AddMonths(6); //6か月後を求める
Console.WriteLine(date1);
Console.WriteLine(date2);
}
}
}
静的メソッド,静的プロパティ
using System;
namespace ClassSample
{
class Program
{
static void Main(string[] args)
{
var isLeapYear = DateTime.IsLeapYear(2020); //IsLeapYearは静的メソッド
if (isLeapYear)
{
Console.WriteLine("うるう年です");
}
}
}
}
using System;
namespace ClassSample
{
class Program
{
static void Main(string[] args)
{
var today = DateTime.Today; //Todayは静的プロパティ、todayはDateTime型
Console.WriteLine($"{today.Year}年{today.Month}月{today.Day}日");
}
}
}
using System;
namespace ClassSample
{
class Program
{
static void Main(string[] args)
{
for (var year = 1868; year <= 2030; year++)
{
if (DateTime.IsLeapYear(year)) //インスタンスを生成しないでメソッドを呼び出している
{
Console.WriteLine(year);
}
}
}
}
}
using System;
namespace ClassSample
{
class Program
{
static void Main(string[] args)
{
var book1 = new Book { Title = "伊豆の踊子", Auther = "川端康成" };
book1.PrintTitle();
var book2 = new Book { Title = "走れメロス", Auther = "太宰治" };
book2.PrintTitle();
var book3 = new Book { Title = "銀河鉄道の夜", Auther = "宮沢賢治" };
book3.PrintTitle();
Book.ClearCount();
Console.WriteLine(Book.Count);
}
}
class Book
{
public static int Count { get; set; } //静的プロパティ
public static void ClearCount() //静的メソッド
{
Count = 0;
}
public string Title { get; set; }
public string Auther { get; set; }
public void PrintTitle()
{
Console.WriteLine("書籍名: {0}", Title);
Count++;
Console.WriteLine(Count);
}
}
}
静的クラス
using System;
namespace ClassSample
{
class Program
{
static void Main(string[] args)
{
var scores = new int[] { 46, 59, 48, 93, 29, 20, 70 };
var total = ArrayUtils.Total(scores); //静的メソッドの呼び出し
var average = ArrayUtils.Average(scores); //静的メソッドの呼び出し
Console.WriteLine($"合計:{total}, 平均:{average}");
}
}
static class ArrayUtils //staticメソッドで静的クラスにする
{
public static int Total(int[] numbers) //配列内の数値の合計を求める
{
var total = 0;
foreach (var n in numbers)
{
total += n;
}
return total;
}
public static double Average(int[] numbers)
{
var total = Total(numbers); //上記のTotalメソッドを呼び出す
return (int)total / numbers.Length;
}
}
}
Stringクラス
部分文字を取り出す
using System;
namespace ClassSample
{
class Program
{
static void Main(string[] args)
{
var str = "オブジェクト指向";
var sub1 = str.Substring(0,6);
var sub2 = str.Substring(6, 2);
Console.WriteLine(str);
Console.WriteLine(sub1);
Console.WriteLine(sub2);
}
}
}
前後の空白文字を取り除く
Trim()
文字列の英字を大文字/小文字にする
ToUpper()
ToLower()
文字列の一部を置き換える
RePlace("staticメソッド","静的メソッド")
↓
staticメソッドが静的メソッドの文字に置き換えられる
指定した部分文字列が存在するかどうかを調べる
Contain("調べたい文字列")
文字列を指定した文字で分割する
var items = str.Split(',')
//カンマで分割する。itemsはstringの配列(string[])になる
Mathクラス
絶対値を求める
Math.Abs(150);
Math.Abs(-320);
Math.Abs(-5,67m);
Math.Abs(-1.414);
どちらが大きい/小さいを求める
var max = Math.Max(value1, value2);
var min = Math.Max(value1, value2);
小数点以下を切り捨てる/切り上げる
var floor = Math.Floor(n);
var ceiling = Math.Ceiling(n);
小数点以下を四捨五入する
var r1 = Math.Round(6.4, MidpointRounding.AwayFromZero); //四捨五入
var r2 = Math,Round(6.4); //偶数丸め
DateTime構造体
現在の日時を取得する
var now = DateTime.Now; //現在の日時を取得する
var now = DateTime.Today; //今日の日時を取得
Console.WriteLine("{0}年, now.Year");
↓
他はこれに変える
now.Month
now.Day
now.Hour
now.Minute
now.Second
書式を指定して日付を文字列に変換する
ToString("d");
ToString("D"); など
↓
その他
f, F, yyyy, yy, MM, M, dd, d, HH, H, hh, h, mm, m, ss, s, ddd, tt
yearやsecondなどの頭文字だと思えば覚えやすい
Fileクラス
テキストファイルを作成する
using System;
using System.IO; //Fileクラスを使用する際に必要
namespace ClassSample
{
class Program
{
static void Main(string[] args)
{
var lines = new string[]
{
"あああああああああああ",
"いいいいいいいいいいいい",
"うううううううううううううう",
"ええええええええええええええええ"
};
File.WriteAllLines(@"C:\\temp\\ああああ.txt", lines);
}
}
}
これを実行するとtempフォルダにテキストファイルが作成される(Cドライブ直下にtempフォルダを作っておくこと)
読み込むときは下記コードを書く
using System;
using System.IO; //Fileクラスを使用する際に必要
namespace ClassSample
{
class Program
{
static void Main(string[] args)
{
var lines = File.ReadAllLines(@"C:\temp\ああああ.txt");
foreach (var line in lines)
{
Console.WriteLine(line);
}
}
}
}
配列を返すメソッド
using System;
namespace ClassSample
{
class Program
{
static void Main(string[] args)
{
var nums = ArrayUtils.GetArray(5);
var total = 0;
foreach (var x in nums)
{
total += x;
}
Console.WriteLine($"合計: {total}");
}
static class ArrayUtils
{
public static int[] GetArray(int count)
{
var array = new int[count];
for (var i = 0; i < count; i++)
{
var line = Console.ReadLine();
array[i] = int.Parse(line);
}
return array;
}
}
}
}
オブジェクトを返すメソッド
using System;
namespace ClassSample
{
class Program
{
static void Main(string[] args)
{
var book1 = MakeBookObject();
var book2 = MakeBookObject();
book1.Print();
book2.Print();
static Book MakeBookObject() //Book型を返すメソッド
{
Console.Write("書籍名⇒");
var title = Console.ReadLine();
Console.Write("著者名⇒");
var auther = Console.ReadLine();
Console.Write("ページ数⇒");
var pages = Console.ReadLine();
var book = new Book
{
Title = title,
Auther = auther,
Pages = int.Parse(pages),
Rating = 3
};
return book; //Bookオブジェクトを返す
}
}
class Book
{
public string Title { get; set; }
public string Auther { get; set; }
public int Pages { get; set; }
public int Rating { get; set; }
public void Print()
{
Console.WriteLine($"★{Title}");
Console.WriteLine($"{Auther} {Pages}ページ {Rating}");
}
}
}
}