転職を繰り返したサラリーマンの多趣味ブログ

30才未経験でSEに転職した人の多趣味ブログ

C#を勉強する14_文字列の変換

次は本当によく出てくる文字列の変換。競技プログラミングの問題で、「本当は'L'と入力するところを、誤って'i'と入力した。プログラムで'i'の部分を'L'に変換すること」などがある。 文字列の前後の空白を取り除く var target = " non-whitespace "; // 空…

C#を勉強する13_文字列の検索と抽出

前回は、文字列の判定だった。そのため戻り値はboolだったが、今度は文字列の抽出を行う。 部分文字列を検索し、その位置を求める var target = "1234ABC567"; // 0から始まるため「4」を返す var index = target.IndexOf("ABC"); 文字列の一部を取り出す va…

C#を勉強する12_文字列の判定

前回に引き続き、文字列の操作編。今回は文字列の判定です。 文字列に関わらず、ソースを書く際気をつけないといけないのが、nullpointerexceptionだ。Stringクラスの静的メソッドには、このnull判定が用意されている。 // null あるいは空文字列の場合、tru…

C#を勉強する11_文字列の比較

転職活動のなかで、paizaに出会った。 paiza.jp paizaのスキルチェックでは、プログラミングの問題を解くことができる。この問題を解く際に、文字列やリストを操作するメソッドを知っていると、ソースを簡潔に書くことができる。C#には色々便利なメソッドが…

【Unity】ダメージをくらったら、Spriteを点滅させて無敵時間を作る方法

横スクロールアクションや、シューティングゲームでよくあるあれです。 まずSpriteを点滅させる方法は、SpriteRendererコンポーネントのアルファ値を変化させてやれば、実装できる。そのときのソースコードがこれ。 public SpriteRenderer sp; // ダメージ判…

【Unity】TextがSpriteの後ろの隠れてしまう問題

タイトルそのまんまです。ゲーム作ってたら、こんな感じでTextオブジェクトがSpriteの後ろになってしまう問題が発生。 Sprite同士なら簡単にいくのだが、TextとSpriteだとどうしていいのかわからず、結構悩んでいた。 で、解決した方法がこちら。 Textオブジ…

C#を勉強する⑩_初期化に関して

基本的には、変数の宣言と値の設定はセットで行うことがイディオム(慣用的なコード)とされている。そうしないと、コードの可読性が落ちるから。例としては、以下のような感じ。 int age; Console.WriteLine("hoge"); // 宣言と値の設定の間に、別なコード…

C#を勉強する⑨_可変長引数、オプション引数、コンストラクタ定義について

可変長引数 メソッド定義で、引数の数を限定しない書き方。引数は、配列として扱う。 public static void Main(string[] args) { // 3が出力される Console.WriteLine(LastNum(1, 2, 3)); // 5が出力される Console.WriteLine(LastNum(1, 2, 3, 4, 5)); } pu…

C#を勉強する⑧_プロパティの初期化

これまでプロパティの初期化といったら、コンストラクタでやるものだと思ってた。 class Sale { public int number { get; set; } // コンストラクタ public Sale() { number = 10; } } けど、C#ではコンストラクタを使わずにプロパティの初期化ができる。こ…

C#を勉強する⑦_条件演算子、null合体演算子、null条件演算子

条件演算子 if文で書くと4行になるところが、条件演算子を使うと1行で書ける。たしかに便利だが、慣れないと普通にif文使ってしまいそう。 // ?より前が条件式 // trueなら1、falseなら0を返却 var num = list.Contains(key) ? 1 : 0; null合体演算子 // Get…

C#を勉強する⑥_LINQ to Objects

LINQは「Language Integrated Query」の略。自分が勉強したイメージだと、SQLの構文をC#で使えるイメージ。LINQを使うには、usingディレクティブを使って名前空間System.Linqを指定する。 イメージでSQLと言ったのは、LINQにはクエリ演算子なるものが用意さ…

C#を勉強する⑤_List<T>クラスとラムダ式の組み合わせ

Listクラスには、デリゲートを引数に受け取るメソッドが用意されている。 paizaなどで問題を解く際、Listの操作をするシチュエーションは多々ある。ラムダ式を使うことでListの操作を簡潔にかけるので、ここでまとめておく。 なおこれから書くメソッドは、以…

C#を勉強する④_ラムダ式

C#を勉強すると、ラムダ式の壁にぶつかった。何度勉強しても、難しく感じる。ラムダ式を書くにあたり、「ラムダ式の{}の中が1つの文の場合は、{}とreturnを省略することができる」などのルールが存在するが、それらを全て覚えることは不可能だと判断した。 …

最近転職したので、自分の転職活動をまとめてみた

最近、転職しました。もちろん同じSEではあるけれど、転職活動は結局3ヶ月ほどやった。せっかく転職するんだから今よりもいい条件で働きたくて、色々悩んでたら3ヶ月も経っていた。働き方としては以下を考えた。 正社員_自社開発 正社員_客先常駐 正社員_在…

しばらくブログを更新しなかったら、アクセスが確実に増えてきている

しばらくブログ更新していないなーと思っていたら、最後に更新したのが11月だった。なので、90日間更新していないブログに表示される広告が、ついにこの広告にも表示されてしまっていた。更新はしていないものの、アクセスは日々見ていたんやけど、そうする…

C#を勉強する③_インターフェイスについて

静的メソッドとインスタンスについて 静的メソッドからは、自分自身のインスタンスを呼び出せない。よく例にあげられるのが、Mainメソッドでのこと。 このように、静的メソッド内では、自分自身のインスタンスメソッドは呼び出せない。 // 静的メソッドとし…

エルカミーノ:ブレイキング・バッド THE MOVIE_海外ドラマの王者は、映画になっても面白い

※多少、ネタバレありです。 Breaking Badの後日談が、NETFLIXで映画になって公開された。 Breaking Badとは、2008年から始まったアメリカのテレビドラマシリーズで、シーズン5で完璧なラストを迎えた。いわゆる海外ドラマというジャンルだが、海外ドラマの主…

C#を勉強する②_値型と参照型を理解する。

分かったつもりになっても、ちょっと時間がたてば混乱するのが値型と参照型の違い。 まず、例となるソースコードを書いてみた。ちなみに、構造体は値型。 public class Program { public static void Main(string[] args) { MyClass myClass = new MyClass()…

C#を勉強する①_継承の基礎を理解する。

自分はUnityでゲームを作っている。つい先日も、新しいゲームをリリースした。 uuc1h.hatenablog.jp UnityではC#の言語が採用されているので、必然的にC#の知識が必要になってくる。 普段の業務ではJavaを使っているので、なんとなくC#も書けるがやはり1から…

【Unity】30才からプログラミングを始めたサラリーマンが、AndroidアプリをGoogle Playへリリースした。

少し時間が空いたけど、Androidアプリを新たにリリースしました。それがこちら。 play.google.com 30秒間に画面をタップした回数を記録するゲーム。スマホアプリにはよくあるゲームだ。Unityでゲームは作っているが、これまで作ったゲームはUnityの技術書の…

【Unity】Unityで作ったゲームをビルドして、Google Playへ公開する方法

これまで、Google Playへ3つのAndroidアプリをリリースしました。当時の記事がこちら。 uuc1h.hatenablog.jp けど、ちょっと間が空くと、かならずやり方を忘れてしまう。そのため、ここで自分用の完璧な手順書を作っておく。 UnityでAndroidビルドをする方法…

【モンスターハンターワールド】モンハン初心者がモンスターハンターワールドを始めてみた。

これまでこのブログは、プログラミングとゲーム作りについて書いてきた。ほぼ、自分のための勉強ブログだ。で、今はUnityを使ったゲーム作りをメインでやってるが、面白いゲームを作るには、面白いゲームをやらなければいけない。もちろん、これまでもゲーム…

MacBook Pro(13-inch, Mid 2010)をSSDに換装した。

少し前に、MacBook Proのメモリーを16GBに増設し、多少動作に改善が見られた。ただ、メモリーを増やしたところで、「本体の起動が遅い」、「アプリケーションの起動が遅い」、「Unity、Visual Studioが重い」といった事象は解消されなかった。 uuc1h.hatenab…

もう自分も年なんだなと感じた今日この頃。

よくCMで、「日本人の8割は歯周病にかかっている」とかって見ても、「ふーん」ぐらいにしか感じたことがなかったし、むしろ「ふーん」とも思わないことが多かった。だがしかし、最近銀歯が取れたので、かれこれ4年振りぐらいに歯医者に行ったら、かなりショ…

今日は久しぶりにブログらしいブログを書こうと思う。

継続は力なりとはよく言うけども、それは確かに本当なんじゃないかという気がしてきた。このブログ、立ち上げてから2年以上たっている。当初は、ブログでお小遣いを稼げたらなーと思っていたが、全く稼げない。そもそもアクセスが無いのだ。けど、考えてみた…

【技術書メモ】C#プログラミングのイディオム / 定石&パターン⑧

今回は、日付、時刻の操作方法。 DateTime構造体 DateTime構造体のインスタンス生成の主な方法と、よく使われるTodayプロパティとNowプロパティ。 // インスタンス生成 var dt1 = new DateTime(2016, 2, 15); var dt2 = new DateTime(2016, 2, 15, 8, 45, 20…

【技術書メモ】C#プログラミングのイディオム / 定石&パターン⑦

今回はディクショナリの操作について。ディクショナリと聞くと馴染みがないが、JavaでいうMapと認識している。 ディクショナリの基本操作 ディクショナリの初期化。 var flowerDict = new Dictionary<string, int>() { {"sunflower", 400}, {"pansy", 300}, }; なお、ディ</string,>…

【技術書メモ】C#プログラミングのイディオム / 定石&パターン⑥

今回は、配列とListの操作です。 配列とListは似たところがあるけど、自分はほぼListしか使わないかも。配列の使い所がわからない。 この章ではLINQのさらに詳しい使い方も説明してくれるらしいので、頑張ります。 要素の設定 配列あるいは、Listを同じ値で…

【技術書メモ】C#プログラミングのイディオム / 定石&パターン⑤

今回は文字列操作編! そういえば、会社の研修でJavaを勉強し始めた当初、文字列の比較のやり方がわからなくて、かなりつまづいたな。 結局、10才近く年下の子にやり方教えてもらったのは、いい思い出です。 文字列の比較 C#での文字列比較をやっていきます…

【技術書メモ】C#プログラミングのイディオム / 定石&パターン④

本のタイトルにもなっているイディオム。 そもそもイディオムって何だろうと思っていたが、これはコーディングレベルでよく利用される汎用的なコードのこと。 なので、このイディオムを覚えれば、品質もよく、正しいコードを書けることに繋がりそう。特に自…