コガネブログ

平日更新を目標にUnityやC#、Visual Studioなどのゲーム開発アレコレを書いていきます

【C#】1つ上の階層のフォルダ(ディレクトリ)のパスを取得する方法

C#

ソースコード var path1 = @"C:\Hoge\Fuga"; var path2 = path1.Substring( 0, path1.LastIndexOf( @"\" ) + 1 ); Console.WriteLine( path2 ); // C:\Hoge\

【C#】指定したパスがファイルかフォルダ(ディレクトリ)かを確認する方法

C#

ソースコード using System.IO; ... var path = @"C:\Temp"; var isDirectory = File .GetAttributes( path ) .HasFlag( FileAttributes.Directory ) ; Console.WriteLine( isDirectory ? "フォルダです" : "ファイルです" );

【C#】Dictionary に指定したキーや値が存在するかどうか確認する方法、値を取得する方法

C#

ソースコード using System; using System.Collections.Generic; public static class Program { private static void Main() { var table = new Dictionary<int, string> { { 1 , "フシギダネ" }, { 2 , "フシギソウ" }, { 3 , "フシギバナ" }, { 4 , "ヒトカゲ" }, { 5 </int,>…

【C#】フォルダ(ディレクトリ)を作成、移動(名前の変更)、削除する方法

C#

ソースコード using System.IO; // この一行をソースコードの先頭に記述する public static class Program { private static void Main() { // フォルダ(ディレクトリ)を作成する Directory.CreateDirectory( @"C:\Example\Hoge" ); // フォルダ(ディレク…

【C#】コンソールアプリケーションでタスクバーのアイコンを点滅させてみる

C#

ソースコード using System; using System.Runtime.InteropServices; using System.Text; public static class Program { private delegate bool EnumWindowsDelegate( IntPtr hWnd, IntPtr lparam ); [DllImport( "user32.dll" )] static extern Int32 Flas…

【C#】Windows でトースト通知を送ることができる「console-toast-8」紹介

はじめに 「console-toast-8」を使用すると、 Windows でトースト通知を送ることができます 使用例 "console-toast-8.exe" ^ --template "ToastText02" ^ --title "title" ^ --line1 "message1" ^ --line2 "message2" ^ --app_id "app id" オプション 内容 …

【Unity】専門学生からゲーム会社に就職して Unity エンジニアとして働くまでに読んだオススメの C# の本を7冊紹介

はじめに 僕は2009年に専門学校に入学して、2013年にゲーム会社に就職しました そして、2017年の現在まで、主に Unity エンジニアとしてゲームを開発しています 今回はその中で、読んで良かったと思った C# の本を7冊紹介しようと思います 僕がはじめて C# …

【C#】XmlNodeList で LINQ の「Select」「Where」「First」「FirstOrDefault」を使用できるようにする拡張メソッド

ソースコード using System; using System.Collections.Generic; using System.Xml; public static class XmlExt { public static IEnumerable<T> Select<T> ( this XmlNodeList self, Func<XmlNode, T> selector ) { foreach ( XmlNode n in self ) { yield return selector( </xmlnode,></t></t>…

【C#】DateTime が特定の曜日の場合に true を返す拡張メソッド

ソースコード public static class DateTimeExt { public static bool IsMonday( this DateTime self ) { return date.DayOfWeek == DayOfWeek.Monday; } public static bool IsTuesday( this DateTime self ) { return date.DayOfWeek == DayOfWeek.Tuesday…

【C#】明日の DateTime を返す拡張メソッド

ソースコード public static class DateTimeExt { public static DateTime Tomorrow( this DateTime self ) { return value.AddDays( 1 ); } }

【C#】前日の DateTime を返す拡張メソッド

ソースコード public static class DateTimeExt { public static DateTime Yesterday( this DateTime self ) { return value.AddDays( -1 ); } }

【C#】DateTime が指定された期間内の場合に true を返す拡張メソッド

ソースコード public static class DateTimeExt { public static bool IsBetween( this DateTime self, DateTime from, DateTime to ) { return from <= value && to >= value; } }

【C#】XmlAttribute が null ではない場合にのみ Value を返す拡張メソッド

ソースコード using System.Xml; public static class XmlExt { public static string GetValueOrDefault ( this XmlAttribute self, string defaultValue = "" ) { return self != null ? self.Value : defaultValue; } } 使い方 var attr = node.Attribute…

【C#】シーケンスから null の要素を除外する拡張メソッド

ソースコード using System.Collections.Generic; using System.Linq; public static class IEnumerableExt { public static IEnumerable<T> NotNull<T>( this IEnumerable<T> self ) { return self.Where( c => c != null ); } } 使い方 var list = new [] { "フシギ</t></t></t>…

【C#】配列やリストで要素が末尾かどうかを判定できるループ構文の拡張メソッド

ソースコード using System; using System.Collections.Generic; public static class ListExt { public struct ForEachData<T> { private readonly int m_index ; private readonly T m_value ; private readonly bool m_isLast ; public int Index { get { re</t>…

【Unity】【C#】日本語の文字列をソートする時に使用させていただいているプログラム

はじめに ゲーム開発においてアイテムや商品ラインナップを五十音順で並べたい時などに 上記サイト様のプログラムを使用させていただいています 使い方 var list = new [] { "フシギダネ", "ヒトカゲ" , "ゼニガメ" , }; var sortedList = list .OrderBy( c …

【C#】Manatee.Trello を使用して Trello にリストやカードを追加してみる

C#

前回の記事 はじめに 今回は「Manatee.Trello」を使用して、 Trello にリストやカードを追加してみます 検証環境 .NET Framework 4.5.2 Manatee.Trello 1.18.3 Manatee.Trello.ManateeJson 1.8.1 Manatee.Trello.WebApi 1.1.0.1 ソースコード using Manatee.…

【C#】Manatee.Trello を使用して Trello から情報を取得してみる

C#

はじめに 「Manatee.Trello」を使用すると C# で Trello の情報を取得したり Trello にリストやカードを作成したりできるようになります 検証環境 .NET Framework 4.5.2 Manatee.Trello 1.18.3 Manatee.Trello.ManateeJson 1.8.1 Manatee.Trello.WebApi 1.1.…

【C#】「Trello メンバー追加くん」を Github に公開しました

C#

はじめに 「Trello メンバー追加くん」を Github に公開しました Trello では複数のカードにメンバーを一括で追加できないため C# で専用のツールとして作成しました 概要 Trello 内の指定されたメンバーを複数のカードに一括で追加・削除するツールです。 …

【C#】MyTrelloNet(Trello.NET) を使用して Trello にボードやリスト、カードを追加してみる

C#

前回の記事 はじめに 今回は「MyTrelloNet」を使用して、 Trello にボードやリスト、カードを追加してみます 検証環境 .NET Framework 4.6 MyTrelloNet 1.0.8 ソースコード using System.Linq; using TrelloNet; ... // Trello を操作するインスタンスを生成…

【C#】MyTrelloNet(Trello.NET) を使用して Trello から情報を取得してみる

C#

はじめに 「Trello.NET」を使用すると C# で Trello の情報を取得したり Trello にボードやリスト、カードを作成したりできるようになります 上記の「Trello.NET」は 3 年ほど更新されていないようだったので 今回は下記の「MyTrelloNet」を使用していきます…

【Unity】【C#】簡易モンキーテストツールを作りました

はじめに Unity 製のスマホゲームの開発中に使用していた 自作のモンキーテストツールを GitHub に公開しました このツールを使うと指定された範囲内を高速かつランダムにクリックし続けるため ボタンが連打できたり意図しないタイミングで押せてしまったり…

【C#】char 型の数値を int 型に変換する拡張メソッド

ソースコード public static class CharExt { public static int ToInt( this char self ) { return self - '0'; } } 使い方 char ch = '1' int num = ch.ToInt();

【C#】数値を符号付きの文字列に変換する拡張メソッド

ソースコード /// <summary> /// 指定された数値を符号付きの文字列に変換して返します /// </summary> public static string WithSign( this int self ) { return self != 0 ? self.ToString( "+#;-#;" ) : self.ToString(); }

【C#】単数を渡せるIEnumerable.Concat

ソースコード /// <summary> /// 2 つのシーケンスを連結します /// </summary> public static IEnumerable<TSource> Concat<TSource>( this IEnumerable<TSource> first, TSource second ) { return first.Concat( new [] { second } ); }</tsource></tsource></tsource>

【C#】LINQのUnion関数の引数にラムダ式を使えるようにする拡張メソッド

ソースコード using System; using System.Collections.Generic; using System.Linq; public static class IEnumerableExtensions { private sealed class CommonSelector<T, TKey> : IEqualityComparer<T> { private Func<T, TKey> m_selector; public CommonSelector( Func<T, TKey> sele</t,></t,></t></t,>…

【C#】LINQのSequenceEqual関数の引数にラムダ式を使えるようにする拡張メソッド

ソースコード using System; using System.Collections.Generic; using System.Linq; public static class IEnumerableExtensions { private sealed class CommonSelector<T, TKey> : IEqualityComparer<T> { private Func<T, TKey> m_selector; public CommonSelector( Func<T, TKey> sele</t,></t,></t></t,>…

【C#】LINQのIntersect関数の引数にラムダ式を使えるようにする拡張メソッド

ソースコード using System; using System.Collections.Generic; using System.Linq; public static class IEnumerableExtensions { private sealed class CommonSelector<T, TKey> : IEqualityComparer<T> { private Func<T, TKey> m_selector; public CommonSelector( Func<T, TKey> sele</t,></t,></t></t,>…

【C#】LINQのExcept関数の引数にラムダ式を使えるようにする拡張メソッド

ソースコード using System; using System.Collections.Generic; using System.Linq; public static class IEnumerableExtensions { private sealed class CommonSelector<T, TKey> : IEqualityComparer<T> { private Func<T, TKey> m_selector; public CommonSelector( Func<T, TKey> sele</t,></t,></t></t,>…

【C#】LINQのContains関数の引数にラムダ式を使えるようにする拡張メソッド

ソースコード using System; using System.Collections.Generic; using System.Linq; public static class IEnumerableExtensions { private sealed class CommonSelector<T, TKey> : IEqualityComparer<T> { private Func<T, TKey> m_selector; public CommonSelector( Func<T, TKey> sele</t,></t,></t></t,>…