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

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

プログラミング

C#を勉強する16_その他の文字列操作

文字配列から文字列を生成する // 配列の生成 var chars = new char[] { 'P', 'r', 'o', 'g', 'r', 'a', 'm', }; // 文字配列から文字列の生成 var str = new string(chars); 数値を文字列に変換する C#では、数値を文字列に変換する方法が、「ToStringメソ…

C#を勉強する15_文字列の連結と分割

次は文字列の連結と分割。文字連結といえば、+演算子。 var name = "山田" + "TARO"; 連結はこの+演算子でだいたい事足りるが、文字列配列の場合はJoinメソッドを使うと便利な使い方ができる。 var languages = new[] { "C", "Java", "VB", "Ruby" ,}; // 区…

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ヶ月も経っていた。働き方としては以下を考えた。 正社員_自社開発 正社員_客先常駐 正社員_在…

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

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

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の技術書の…

【技術書メモ】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#プログラミングのイディオム / 定石&パターン④

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

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

ラムダ式 ラムダ式は一種のメソッドで、メソッドをかなり簡略化することができる。 public void Do() { var numbers = new[] { 5, 3, 9, 6, 7, 5, 8, 1, 0, 5, 10, 4 }; // 変数judgeに処理内容を代入 Predicate<int> judge = (int n) => { if (n % 2 == 0) { ret</int>…

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

C#についてがっつり勉強しようと思い、購入した技術書。 まだまだ序盤だが、評判通りのかなりの良書の予感。 uuc1h.hatenablog.jp では、前回同様、まとめていきたいといきます。 複数の値の代入方法 このやり方は知らなかったので、メモ。 for (int feet = …

【Unity】Unity2019.1.5f1でAndroid Buildをしようとしたら、「gradle build failed」と出てしまったときの対処方法

複合的な問題でした。まずUnity2019では、Android SDK & NDK Toolsを一緒にインストールしている。そのため、Preferencesより、インストールしたファイルのパス設定を行った。自分が確認したときは、ズレていた。詳しくは、以下参照。https://framesynthesis…

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

趣味で、Unityでゲームを作っているが、C#についてちゃんと勉強したことがない。 そのため、ここらでC#について基礎から学ぼうと思い、以下の技術書を読んだ。 uuc1h.hatenablog.jp 入門としては、最適な良書だと思う。 そこで、次に入門書の一歩先の技術書…

【技術書メモ】確かな力が身につくC#「超」入門

Unityをメインにアプリ開発をしているが、Unityで使用する言語はC#だ。 自分は仕事でJavaを使っているからC#も何となく理解できるが、ここらで一度C#を学んでおきたいと思う。 そこで手に取ったのが、この「確かな力が身につく」シリーズだ。確かな力が身に…

アプリ開発初心者が作ったアプリは、本当に売れるのか?③_アプリを作る場合、自分ができる範囲を自覚することが重要

まさに表題の通りです。GWが終わり仕事が始まると、そもそも家で開発できる時間がなかなか確保できない。 けど、ここでやめてしまうとせっかく勉強を始めたのに勿体ないので、何とか少しずつでも開発を行っていました。 ちなみに完成したアプリは、こんな感…

【スポンサーリンク】