質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

529閲覧

C#の最適な勉強法について

atushi3333

総合スコア15

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2020/06/28 13:24

私はUnityを本など使い勉強しています。
もともとJavaをやっていたので多少の文法違い(例えばキャストにasを使うなど)に違和感は感じましたが、
問題なく進めることができました。
しかし過去の言語の経験だけを頼りにC#をやっていくのにも限界があると思い
C#の勉強を始めようと思います。

そこでC#の最適な勉強法を教えていただきたいです。
私はJavaをメインにして、Pythonをサブ的な感じで使ってきました。
C, C++, C#の経験はほぼありません。

何かC#を学ぶにあたって必要な前提知識はありますか?
いきなりC#から入る形で問題ないでしょうか?
C#はガベージコレクション搭載しているから、Cの勉強は不要かなと思ったのですが
調べてみるとCが前提として必要という記事も見つけたので不安で手が出せない状況です。
手戻りはなるべく減らしたいんです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2020/06/28 13:37 編集

> 調べてみるとCが前提として必要という記事も見つけたので不安で手が出せない状況です。 どの記事かわかりませんが、Unity を使う限りにおいて不要です。P/Invoke を使用する時には必要になります。 > 手戻りはなるべく減らしたいんです。 そんなものを恐れていては何もできません。何度でも戻れる人だけが上に行けます。
atushi3333

2020/06/28 13:54

回答ありがとうございます P/InvokeというのはC#でメモリ管理を自分でしたいときに 使うもの、という認識で問題ないでしょうか? P/Invokeを使わない分にはC#を学ぶにあたって前提知識なしでも問題ないという感じですかね?
pepperleaf

2020/06/28 13:57

C++が、Cの直系(?)で、Java と C# はその傍系(?)みたいなものでしょうか。 なまじ、Cから入ると、ポインタが使えなくて不便と思ってしまう。などのデメリットも。
Zuishin

2020/06/28 14:01 編集

https://ja.wikipedia.org/wiki/P/Invoke こういうものです。ざっくり言うと、OS の API を呼び出したり、C/C++ で書かれた DLL を使用したりします。それらのドキュメントが基本的に C/C++ を前提に書かれているので、それが読めなければ使うのは難しいと思います。
atushi3333

2020/06/28 14:02

なるほど。 c#からネイティブな機能を使う感じですかね
atushi3333

2020/06/28 14:12

pepperleafさん なるほど、私も調べたときに確かそんな体系だったのを思い出しました。 Cという名前のせいでどうしても、「つながりがあってCがわかんないとだめなのかな」 と不安になりすぎてました。 C#から行こうと思います。 ありがとうございました。
BluOxy

2020/06/28 14:19

> 調べてみるとCが前提として必要という記事も見つけたので不安で手が出せない状況です。 Unityの公式ドキュメントに書いてあるか確認しましょう。個人の記事(二次情報)は無暗に、理由なく信用してはいけないと思います。(参考材料になる場合はありますが)
guest

回答1

0

ベストアンサー

何かC#を学ぶにあたって必要な前提知識はありますか?

基本はC#のドキュメントを見れば学ぶのに必要な情報は揃っていると思います。
しかし、強いて挙げるならばオブジェクト指向の基礎知識が必要でしょう。

そもそも論で書くならば、学び方自体を理解することで今回の質問は発生しないと思います。

いきなりC#から入る形で問題ないでしょうか?

Unity を使う目的で C# を学んでいるのであればいきなり C# を触るのではなく、 Unity を触っていく上で必要が出たときに C# を学べば良いと思います。

調べてみるとCが前提として必要という記事も見つけた

前提とは聞いたことがありません。出典がとても気になります。

しかし、Unityを使う上(つまり、Unityのリファレンスを参考にしている上)でC言語やC++を使う必要が出てきたならば(98%ぐらいは必要ないと思いますが)覚える必要があると思います。

C#の最適な勉強法を教えていただきたい

基礎となる知識から順に覚えること です。これは Java でも他の言語でも同様です。

C# を学ぶにあたって、分からないことを分からないままにしてC#の機能を利用しなければ(分からない情報を虱潰しに理解していけば)手戻りがない、最適であると思います。

また、個人記事は出来る限り優先的に参考にしないことです。大半の記事は、公式の情報から引用し、変更を加えたような内容だからです。それを参考することによって下記のリスクが発生します。

  • 必要な情報が省略されている場合がある
  • そもそも、誤った情報を記載している場合がある
  • メンテナンスされておらず、情報が古い場合がある

まずは公式(C# ではMicrosoft)がそれに関する情報を公開していないか確認してください。 = 信頼性の高い1次情報から確認してください

個人が運営しているC#の入門記事・解説記事で私がおすすめできる・情報を信頼できるのは ++C++; // 未確認飛行 C で、こちらはリリース予定のバージョン C# 9.0 においても更新がされている状態です。また、著名な方が書いています。

手戻りはなるべく減らしたい

いきなり高度なことを行おうとすると情報を整理するのに無駄な時間が発生しやすい(この過程で手戻りもしやすい)ので、基礎となる知識から順に覚えましょう

基礎から順に学んで無駄になることは ほとんど無いはず です。
(必要のない基礎は存在するのか?JavaやPythonの視点で考えてください)

投稿2020/06/28 14:16

編集2020/06/29 00:57
BluOxy

総合スコア2663

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

atushi3333

2020/06/28 14:26

ありがとうございます。 公式なども参考にしようと思います。
Daregada

2020/06/29 00:09

「なども」ではなくて、可能な限り「公式の情報を最初に見て」、理解できない部分を補うために「違う人が書いた複数の」解説記事を参考にしてください。 また、そうした情報を見るときは、それがいつ書かれたものか(古いバージョン向けの情報ではないか)もよく確認されるといいかと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問