2020-02-01から1ヶ月間の記事一覧
文字配列から文字列を生成する // 配列の生成 var chars = new char[] { 'P', 'r', 'o', 'g', 'r', 'a', 'm', }; // 文字配列から文字列の生成 var str = new string(chars); 数値を文字列に変換する C#では、数値を文字列に変換する方法が、「ToStringメソ…
次は文字列の連結と分割。文字連結といえば、+演算子。 var name = "山田" + "TARO"; 連結はこの+演算子でだいたい事足りるが、文字列配列の場合はJoinメソッドを使うと便利な使い方ができる。 var languages = new[] { "C", "Java", "VB", "Ruby" ,}; // 区…
次は本当によく出てくる文字列の変換。競技プログラミングの問題で、「本当は'L'と入力するところを、誤って'i'と入力した。プログラムで'i'の部分を'L'に変換すること」などがある。 文字列の前後の空白を取り除く var target = " non-whitespace "; // 空…
前回は、文字列の判定だった。そのため戻り値はboolだったが、今度は文字列の抽出を行う。 部分文字列を検索し、その位置を求める var target = "1234ABC567"; // 0から始まるため「4」を返す var index = target.IndexOf("ABC"); 文字列の一部を取り出す va…
前回に引き続き、文字列の操作編。今回は文字列の判定です。 文字列に関わらず、ソースを書く際気をつけないといけないのが、nullpointerexceptionだ。Stringクラスの静的メソッドには、このnull判定が用意されている。 // null あるいは空文字列の場合、tru…
転職活動のなかで、paizaに出会った。 paiza.jp paizaのスキルチェックでは、プログラミングの問題を解くことができる。この問題を解く際に、文字列やリストを操作するメソッドを知っていると、ソースを簡潔に書くことができる。C#には色々便利なメソッドが…
横スクロールアクションや、シューティングゲームでよくあるあれです。 まずSpriteを点滅させる方法は、SpriteRendererコンポーネントのアルファ値を変化させてやれば、実装できる。そのときのソースコードがこれ。 public SpriteRenderer sp; // ダメージ判…
タイトルそのまんまです。ゲーム作ってたら、こんな感じでTextオブジェクトがSpriteの後ろになってしまう問題が発生。 Sprite同士なら簡単にいくのだが、TextとSpriteだとどうしていいのかわからず、結構悩んでいた。 で、解決した方法がこちら。 Textオブジ…
基本的には、変数の宣言と値の設定はセットで行うことがイディオム(慣用的なコード)とされている。そうしないと、コードの可読性が落ちるから。例としては、以下のような感じ。 int age; Console.WriteLine("hoge"); // 宣言と値の設定の間に、別なコード…
可変長引数 メソッド定義で、引数の数を限定しない書き方。引数は、配列として扱う。 public static void Main(string[] args) { // 3が出力される Console.WriteLine(LastNum(1, 2, 3)); // 5が出力される Console.WriteLine(LastNum(1, 2, 3, 4, 5)); } pu…
これまでプロパティの初期化といったら、コンストラクタでやるものだと思ってた。 class Sale { public int number { get; set; } // コンストラクタ public Sale() { number = 10; } } けど、C#ではコンストラクタを使わずにプロパティの初期化ができる。こ…
条件演算子 if文で書くと4行になるところが、条件演算子を使うと1行で書ける。たしかに便利だが、慣れないと普通にif文使ってしまいそう。 // ?より前が条件式 // trueなら1、falseなら0を返却 var num = list.Contains(key) ? 1 : 0; null合体演算子 // Get…
LINQは「Language Integrated Query」の略。自分が勉強したイメージだと、SQLの構文をC#で使えるイメージ。LINQを使うには、usingディレクティブを使って名前空間System.Linqを指定する。 イメージでSQLと言ったのは、LINQにはクエリ演算子なるものが用意さ…
Listクラスには、デリゲートを引数に受け取るメソッドが用意されている。 paizaなどで問題を解く際、Listの操作をするシチュエーションは多々ある。ラムダ式を使うことでListの操作を簡潔にかけるので、ここでまとめておく。 なおこれから書くメソッドは、以…
C#を勉強すると、ラムダ式の壁にぶつかった。何度勉強しても、難しく感じる。ラムダ式を書くにあたり、「ラムダ式の{}の中が1つの文の場合は、{}とreturnを省略することができる」などのルールが存在するが、それらを全て覚えることは不可能だと判断した。 …
最近、転職しました。もちろん同じSEではあるけれど、転職活動は結局3ヶ月ほどやった。せっかく転職するんだから今よりもいい条件で働きたくて、色々悩んでたら3ヶ月も経っていた。働き方としては以下を考えた。 正社員_自社開発 正社員_客先常駐 正社員_在…
しばらくブログ更新していないなーと思っていたら、最後に更新したのが11月だった。なので、90日間更新していないブログに表示される広告が、ついにこの広告にも表示されてしまっていた。更新はしていないものの、アクセスは日々見ていたんやけど、そうする…