C#の話をするとしよう

https://adventar.org/calendars/3267

 どうも皆さん、おはようございます、こんにちは、こんばんは。アドベントカレンダー10日目です。休日は布団の暖かさに咽び泣く男、茄子の担当日がやって参りました。
 本日はやはり月曜日ということで、山より高く海より深い気怠さを感じております。そんな、布団から出たくない真正双子葉類の私が本日紹介したいのはこちらです。

Javaとそっくり!C#のコードの書き方!

 という事で、C#に関する極々基本的な部分の紹介になります。
今回はC#で簡単なコードを書いて、同じ処理をするJavaのコードと比較をしてみようと思います。ひとまず両者のそっくり度合いを感じてもらう、というのが狙いです。説明とか自分の理解度とか、多少中途半端な所があるかもしれませんが御容赦を。
あと最後に、C#全然関係ないおまけもあるので良かったら読んでいって下さい。

C#の基本形!

―――――――――――――――――――――――――――――――――
 using System;

 class Advent_1
 {
  static void Main(string[] args)
  {
  }
 }
―――――――――――――――――――――――――――――――――
 こちらが何の処理も記述していない、C#のコードの基本形になります。
最上部の "using System;" は、Javaでいう "import java.lang.*" に当たります。
Javaでは省略可能ですが、C#では記述必須です。
 なんということでしょう。どこかで見た形をしているような気がしますね。
これはもうC#ちょろいのでは?よし、希望が見えてきたぞぅ!

書きます!コードを!

―――――――――――――――――――――――――――――――――
 using System;

 class Advent_1
 {
  static void Main(string args)
  {
   Console.WriteLine("茄子はぐちゃぐちゃして好きじゃない");
   Console.WriteLine("納豆は臭いからやっぱり好きじゃない");
   Console.WriteLine("回転寿司のウニは糞不味い");
  }
 }
―――――――――――――――――――――――――――――――――

f:id:nasukabe503:20181207184824p:plain

 "Main"の中に適当な文章を表示するコードを書きました。
うわぁ...知らない言葉だぁ...鬱だ...死のう...
なんて思ったそこのアナタ。諦めるにはまだ早すぎます。

―――――――――――――――――――――――――――――――――
public class Advent_1 {

 public static void main(String args) {
  System.out.println("茄子はぐちゃぐちゃして好きじゃない");
  System.out.println("納豆は臭いからやっぱり好きじゃない");
  System.out.println("回転寿司のウニは糞不味い");
 }

}
―――――――――――――――――――――――――――――――――
 こちらが、Javaで同じ処理をするプログラムになります。
似てないじゃん、この嘘つき拉麺頭、とか思われたでしょうか。
 C#の表示処理には、 "System." がありません。その為、間の "." の数が違うので混乱するかと思います。
実はC#では、一部の場合を除いて "System." は省くことができるのです。お手軽ですね。
 Javaの"println" は 、C#の "WriteLine" に当たるものです。どちらも、文章を表示して改行を行う、というものになります。
では、C#で改行なしの文章表示、Javaでいう "print" に当たるものはどう記述するのでしょうか?
察しの良い方はすぐに気付くかもしれません。

改行しません!

―――――――――――――――――――――――――――――――――
using System;

class Advent_1
{
  static void Main(string[] args)
 {
  Console.Write("タコは美味い。");
  Console.Write("胡瓜も美味い。");
  Console.Write("桃とかもう最高やんけ。なぁ?");
 }
}
―――――――――――――――――――――――――――――――――
f:id:nasukabe503:20181207192626p:plain

 これが、C#での改行なしの文章表示になります。はい、"Line" を取り除いただけになります。
こうして見ると、C#とJavaとで微妙な違いはたしかに存在します。しかし基本的な部分において大差はない、と思われます。
ないですよね?ね?


 とまあこの様なことから、Javaをある程度勉強していれば、C#もそれなりに扱えるようになると思います。逆もまた然り、です。
C#(とUnityのライブラリ)が扱えればUnityでのゲーム制作なども可能になるので、興味がある人は是非触れてみて下さい。
次回はUnityについて書いたり書かなかったりするかもしれません。

おまけ

 あまりにも真面目過ぎる内容にちょっと息苦しくなって来たので、おまけコーナーとか放り込んでみます。
ここで何をするのかと言えば...それはずばり、好きなものの紹介です。
やりたいことを無理やり詰め込んで、好き勝手に書いていきます。

今日紹介するのはFGOに登場するこの人
f:id:nasukabe503:20181207210910p:plain
 知る人ぞ知る名探偵、シャーロック・ホームズです。アーサー・コナン・ドイルが書いた、シャーロックホームズシリーズの主人公ですね。
持ち前の観察眼と非常に優れた思考能力で、難事件やら何やらをガンガン解決していきます。
ここではFGOと原作小説におけるホームズの良い所についてさらっと書いていきたいと思います。

・強い
・顔が良い
・可愛い

この3つです。
 まずホームズ、バリツという謎の格闘技術を身に着けています。東洋で習得したらしいです。
推理と拳で悪を討つ英国紳士。いいですね。落ち着いたイメージとのギャップが素敵です。
また、滝から落ちても死なない強靭さも凄まじいものです。

 そしてホームズ、顔が良い。容姿に関しては完全にFGOの話になってしまいますが。
f:id:nasukabe503:20181207214405p:plain
f:id:nasukabe503:20181207220330p:plain
 目を閉じていても分かるカッコよさ。いかにも英国紳士、という上品な顔立ち。
正面アップで顔を見せてくれるすばらしい演出に感謝です。

 さらにホームズ、澄まし顔のイケメン探偵かと思いきや、ちょっと可愛らしい一面もあります。
 こちらは原作小説の話になりますが、「ワトソン君の他に友達はいないよ」的な事を言ったり、
「ワトソン君を殺しでもしてみろ!お前を生きてこの部屋から出しゃしなかった!」なんてセリフがあったり、自分を差し置いて結婚したワトソンに対して「おめでとうは言わないよ。私にはまだコカインがある」などと強がる姿も見られます。
割と人間臭いですね。そんなギャップもホームズが人気たる所以の一つでしょう。

 ちなみに、ゲームでの性能は優秀な部類ですが、FGOではその辺あまり重要じゃないです。
どのサーヴァントにも言えますが、性能を気にするよりも好きなキャラクターを使い込んだ方が圧倒的に楽しいゲームなので...


 さて、ホームズの紹介はこんな所です。FGOでは期間限定サーヴァントなのでいつ復刻されるか分かりませんが、もしも気になった方がいましたら、今からゲームを始めてガチャ石を備蓄しておくのも良いのではないでしょうか。
それではまた来週!