0

私は C# を使い始めたばかりですが、Microsoft が新しいシステム .Net と呼んでいるように思えます。なぜなら、インターネットを使用してすべてを検索し、有用な関数とそれを隠しているクラスを見つける必要があるからです。

私には、クラスが名前空間としても機能しないように、スタンドアロン (インスタンス化されていない静的オブジェクト) として作成および設計されたプロシージャ/関数を要求するのは無意味に思えます。

つまり、 Console.WriteLine の代わりに Write または WriteLine を使用できないのはなぜですか?

次に、使用しているオブジェクト(文字列など)が操作の実行方法を知っているという考えに慣れ始めると、外部関数を使用して達成することに慣れています(upper、tolower、substringなど)。数値は、何らかの理由で自分自身をある数値型から別の数値型に変換する方法を知りません。代わりに、Convert クラスの静的関数を呼び出して double を int に変更し、Math クラスの静的関数を呼び出して丸めと切り捨てを行う必要があります..単純な (他の言語での) ステートメントを、C# の無数の文字行にすばやく変換します。

また、コードを書くときの思考プロセスをいくらか妨げる強力な型付けに夢中になっているようです。型の安全性によってエラーが減少することは理解していますが、複雑さが増し、場合によっては不必要に増加すると思います。何かを行うために C# で基本的に必要と思われる明示的な Casting または Converting または ToStringing を使用せずに、必要に応じてコンテキスト駆動型を選択できると便利です。

それで...メモ帳に意味のあるコードを書き、インターネットにアクセスせずにclを使用することさえ可能ですか? オートコンプリートとネットワーク アクセスに頼らずに、どの参考書を使用しますか?

この言語を理解し、より自然に使用するためのプロセスをスムーズにするための提案はありますか?

4

6 に答える 6

8

数年間、ある方法で作業することに慣れていて、新しいプラットフォームでの使用/開発に慣れるために時間がかかる必要があるという事実に少し苦しんでいると思います。

MS は、文字列がそれ自体を別の型に変換する方法を知っており、他のデータ型 (int など) は知らないという事実に一貫性がなかったことに同意しません。文字列自体は、別の型に変換する方法も知らないため、これは当てはまりません。(Convert クラスを使用して、型を他の型に変換できます)。ただし、.NET のすべての型に ToString() メソッドがあることは事実ですが、そのメソッドに依存して、持っているものをすべて文字列に変換するべきではありません。

あなたはオブジェクト指向言語を使ったことがないので、パラダイム シフトに苦労していると思います。このように考えてください。責任と行動がすべてです。クラスは (適切に設計されている場合) 1 つのことを行う責任があり、この 1 つのことを適切に行います。

于 2009-01-21T11:02:32.230 に答える
4

メモ帳を使用して現代語をコーディングする言い訳はありません。SharpDevelopまたはVisualC#Expressは、生産的な方法でC#と連携する機能を提供します。

いいえ、複雑なため、情報源としてインターネットを使用しないことも良い選択肢ではありません。

構造化された方法で言語の概念を紹介する本を購入することもできますが、最新の情報を入手するにはインターネットが必要です。

はい、他の言語と同様に、C#には欠点があります。私はあなたにその言語に慣れるためのアドバイスを与えることしかできません。欠点の多くは、それらのいくつかがそれほど煩わしくならなくても、その後理解できるようになります。一部の言語構成がどのように機能するか、または特定の問題をより効率的に解決する方法を知りたい場合は、サンプルコードを使用して明確で直接的な質問をすることをお勧めします。これにより、これらの質問に簡単に答えることができます。

于 2009-01-21T11:11:41.773 に答える
3

あなたの投稿を読んで、私はあなたが以前は主にCまたは動的言語で働いていたと思っていました。たぶん、C#はあなたにとって間違った選択です。IronPython、F#、および必要な機能(クラス外の関数など)を備えた他の言語がたくさんあります。

私は一貫性についてあなたに同意しません。実際、.NETの一部のコンポーネント間には小さな不整合がありますが、FWのほとんどの部分は非常に一貫性があり予測可能です。

強いタイピングは、欠陥数が少ない大きな要因です。動的型付けは、小規模/中級プロジェクト(スクリプトなど)でうまく機能します。多かれ少なかれ複雑なプログラムでは、ダイナミズムは多くの複雑さをもたらす可能性があります。

インターネット/オートコンプリートについて-多くの知識源を必要としない.NETのサイズのテクノロジーはほとんど想像できません。

于 2009-01-21T11:14:38.990 に答える
3

メモ帳については、有益なアドバイスはありませんが、無料の IDE、Microsoft のExpress Edition、またはSharp Developのいずれかを使用することをお勧めします。IDE は言語の理解を早めます。その時点で、メモ帳に戻ることができます。

于 2009-01-21T11:00:53.217 に答える
1

メモ帳を使用してC#でプログラミングすることは、未舗装の道路を運転するためにフェラーリを購入するようなものです。

少なくともVisualStudioExpressEditionを使用してください。あなたが書いたことについては、あなたがOO以外のバックグラウンドから来ていることを理解しています。OOの概念を学び、それを使用してみてください。最終的には、.Netに対して行われたほとんどの設計上の決定を理解できます。

http://en.wikipedia.org/wiki/Object-Oriented_programming

于 2009-01-21T11:12:03.037 に答える
0

ああ、どこから始めればいいですか(これは長い投稿になります笑)、少しずつ行きましょう:「Microsoftは彼らのシステムを.NETと呼びました. NET は、MICROSOFT LANGUAGUES のスイート (および現在は Phyton や Ruby などの他の言語も) が任意のライブラリまたは DLL を呼び出すことができるためです。たとえば、Visual Basic で構築された DLL を「NET」(ネットワークまたは呼び出し) できる、WITHIN C# からの C++、またはこれらの言語のいずれかから、C# ライブラリを呼び出す (または ".NET") こともできます。OK ONE DOWN!!!

次の 1: 「要求するのは無意味に思えます....そのクラスを名前空間としても機能させないようにします」、これは、名前空間が必要なだけ多くのクラスを持つことができるためです。 Console.WriteLine の代わりに Write または WriteLine を使用していますか?". その理由は次のとおりです。「コンソール」(System.Console は、プログラムの先頭にある「Using」ステートメントを意味します) 名前空間は、「Write」と「WriteLine」が存在する場所です!!(完全に修飾することもできます (または「それを呼び出す」こともできます)。 "). (これはすべて、C# 構文を勉強する必要があるように思えます)、わかりました NEXT:

「オブジェクトが...という考えに慣れ始めたとき」、簡単な言葉で言えば、C#は「強力にタイプセーフな言語」であるため、「あなたが何に取り組んでいるか」を教えなければなりません(SHOULD-MUST)。 PHP や C などのような「WEAK または NO TYPE SAFE LANGUAGES」を使用する場合、これは悪いという意味ではなく、確認するのがあなたの仕事であることを意味するだけです。生徒に次のように伝えています。そうしないと、多くの悪いバグが発生する可能性があります」、つまり、ソフトウェアを設計する前に下調べを行います。

注: C# は IMPLICITY TYPE SAFE 言語なので、UNSAFE として実行したい場合はそれを確認するのがあなたの仕事になります。顧客がすでにあなたの粗末なソフトウェアを使用している場合)。

...そして最後になりましたが、メモ帳を使って自分を撃ちたいですか? Studio Express は無料です。データベースの SQL SERVER も無料です。すべての「余分な」ものは大企業、チームなど向けであり、無料バージョンで99%のものが実行できます(また、分散ソフトウェアまたは大規模なプロジェクトに拡張したい場合は、購入してフルバージョンに更新できます、またはソフトウェアが大ヒットした場合、例: データベースから 1 秒あたり数百万のクエリまたはヒットが必要な場合、または 100 人が同じプロジェクト (コード) に取り組んでいるが、ほとんどの場合、2 人または 3 人の「通常の」開発者が作業している場合自宅や小さなオフィスで働いているなら、無料のもので十分です!!)

ちぇっ!(PS: 80 年代からのソフトウェア開発者)

于 2014-02-16T02:36:52.440 に答える