初めましての投稿です。
今までQiitaは見る専だったのですが、本日インターンがございまして、自分の実力不足が目立ちすぎたため、積極的にプログラミングに取り組む必要があると判断し、学んだ内容をアウトプット、自分のレベルの低い文才を少しでも高めようと思い投稿を決意させていただきました。
文章が読みづらい、他者様との重複等あると思いますが、精進する気持ちしかないので、ご指摘どんどんお待ちしております。よろしくお願いします。
前書きは以上にして、早速本題に入っていきたいと思います。
C#とは?
C#とはjavaのようなObject指向言語の言語の一つであり、
Microsoftによって作られた言語の一つです。
C言語、C++など聞いたことがあると思いますが、これらとの互換性はないようです。
そもそも系統が違ったり、独自の機能を持つことから、互換性はないとのことです。
動作環境の構築
.NET Frameworkのダウンロード
windowsは標準搭載されているようですが、macにはありません。
私は以下リンクから.NET6.0をダウンロードしました。
https://dotnet.microsoft.com/ja-jp/download/dotnet/6.0
C#基本構文
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace basic
{
class basic
{
static void Main(string[] args){
Console.WriteLine("basic system");
}
}
}
basic system と表示する超簡単なプログラムです。各行の役割について解説していきます。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
C#には、名前空間、といった概念がありまして、クラスやファイルのグループ化ができることが大きなメリットです。
例えば1行目のusing System は、これからSystemという名前空間を使いますよっていう宣言です。
ちなみに、Systemという名前空間にはC#を動かすにあたっての基盤になるものがたくさん入っているので、大体入ってる。
namespace basic{}
次にnamespaceですが、こちらは先ほど述べた名前空間の宣言になります。
今から作るクラスの名前空間をbasicという名前で宣言しますよってことです。
こうすることで、他クラスでusing basic と宣言するとbasicクラスのメソッドが使えるようになるわけですね。
class basic
{
static void Main(string[] args){
Console.WriteLine("basic system");
}
次にクラスについてです。
class basicと宣言してからプログラムを書き始めます。
基本namespaceと同じ名前にするのが基本でしょう。
static void Main(string[] args)
について。
こちらはトップレベルステートメント です。
簡単にいうと、この中身のコードから作業を開始するよってことで。
ここから他クラスのメソッドなどを呼び出して一つの作業を行うわけです。
1つのプロジェクトに1つしか存在できません。
実行方法
私はdotnet runを用いて実行しました。ていうか、それしかわかりません。
vscodeのデバックを開始(f5)でできるらしいのですが、XMLの拡張機能がどうとかって言われてよくわかりませんでした。賢くなって追記するかまた新しく記事作るか何かしたいと思います。すごく眠いです。
dotnet runの使用方法について、現在のディレクトリにcsprojっていう拡張子を持ったファイルを作成することが必要です。
$ dotnet new console -o practice_cs
このコマンドを実行することでpractice_csディレクトリに(なければ作成して)csprojファイルとprogram.cs ファイルを作成してくれます。
これ最初に述べとくべきかもしれませんでしたね。
program.cs、いらないなら削除しましょう。
$ dotnet run
で動くはずです。。
初記事 感想
これを読んでくださる方は少ないだろうけど、もし読んでくださった方いらっしゃいましたら、ありがとうございます。
おそらく初学者の方かと思いますが、もしよろしければ実際に試していただいて、動かなかったや動いた報告してくだされば嬉しいです。
ここが良くなかったなとか反省につながると思うので。
眠いのでとりあえずここで締めたいと思います。
もっとできるやつになれるように頑張りたいと思います。