[
板情報
|
カテゴリランキング
]
したらばTOP
■掲示板に戻る■
全部
1-100
最新50
| |
C#やっぞ
1
:
つれづれなるままに
:2021/04/25(日) 11:05:42 ID:5cqWR7dE0
pythonはひとまず保留してC#に入門することにした。
しかしネットでみつけた入門サイトはバージョンが古いらしく、別個自分で調べる箇所が多い。
またGUIのサンプルをコピペしてみたが動かない。
サイトに書かれている文法が古く、現在は変わっているのか、
入っている.net frameworkのバージョンが古いのか…
というかframeworkって自動更新に含まれているんじゃなかった…?
2
:
つれづれなるままに
:2021/04/25(日) 11:21:24 ID:5cqWR7dE0
framework、マイクロソフトからダウンロードしてみたが、「既にインストールされています」と表示された。
C#最新版用の書籍購入か…
とりあえずguiとexe化までの感触を先に知りたい。
3
:
つれづれなるままに
:2021/04/26(月) 10:06:43 ID:FTDUrn/c0
実行ファイルは簡単に作れた。F6を押すだけ。
作業中のフォルダの中に作成される。
ファイルサイズも内容相応だし、起動も速い。
これでいこう。
4
:
つれづれなるままに
:2021/05/02(日) 21:49:50 ID:FTDUrn/c0
[新しいプロジェクトの作成]でテンプレみたいなの呼び出すとき、
古いバージョンのVSだと使えるテンプレ一覧が表示されたらしい。
今はそれが無いので「個別にインストールするのかな?」と思ったら、
検索ボックスに入力すると出てきた。
今回はWPFを使おうと思っていたのだが、「WPF」という言葉を知らない限り出会うこともない。
マイクロソフトの技術者からすればこちらの方が便利ということかな。
テンプレを全部表示させると多すぎて重たくなる?
多分一覧を表示させることも出来るのだろうけど。
5
:
つれづれなるままに
:2021/05/02(日) 21:55:01 ID:FTDUrn/c0
テンプレに限らず、コマンド名を選ぶときも一覧から選ぶのではなく、検索で出すっぽい。
知らなかったけどたまたま目に入ったコメンドを使ってみたら便利だった、みたいなことが起こらない。
設定で変えられるなら変えたほうが良さげ。
6
:
つれづれなるままに
:2021/05/02(日) 22:10:35 ID:FTDUrn/c0
オブジェクトを配置したり詳細設定する際、WPFだとオブジェクトをドラッグして配置を決め、プロパティから設定するらしい。
HSPでも似たような機能を再現したツールはあったが、何のために使うのかよく分からなかった。
しかしWPFを見て納得。
細かく設定できる分、スクリプトが大分長くなる。
アシストツールがないと敷居が高いし、慣れている人でも多分効率が悪い。
7
:
つれづれなるままに
:2021/05/02(日) 22:14:13 ID:FTDUrn/c0
ツールでアシストしてくれている分、補助ウィンドウも増えて、ごちゃごちゃした印象。
一つ一つは必須項目なのだから、それぞれの用途が分かればすっきりして見えるのだろうか。
またWPFはそのようなツールを使って作るが、
これ自体はXAMLという別の言語で書かれているらしい。
うーん、思ったより底が深いぞ…!
8
:
つれづれなるままに
:2021/05/03(月) 14:02:15 ID:FTDUrn/c0
windowsフォームアプリケーションを使えない。
古いものらしいので使わなくても良いかも知れないが、一応覚えておきたい。
また、今見ている入門サイトのサンプルがこれで書かれているようなのだが、動かない。
自分でwindowsフォームアプリで作成しようとすると、
新しいプロジェクトを作成自他時点で「IntelliSense の初期化が完了しましたが、ドキュメントを読み込もうとしてエラーが発生しました」
とでる。
Error code:0x80131500
9
:
つれづれなるままに
:2021/05/09(日) 18:16:23 ID:FTDUrn/c0
なんか一つの命令出すのにごちゃごちゃ書くが、これはフォルダ分けと同じだ。
どこで作ったメソッドなのかを書いているだけ。
同じ命令のメソッドを作ってしまった場合でも、どのクラスかを毎回明示するようにしておけば、
絶対に被らない。
フォルダではなく全て文字で表すので、インデントや文字数が多くなり、
知らない人にとっては仰々しく見える。
何が書かれているのか分かってくれば、目が慣れるはず。
10
:
つれづれなるままに
:2021/05/09(日) 19:47:55 ID:FTDUrn/c0
実行されるのは Main の部分のみ。
結果がごちゃごちゃしていたら、 Main につながっている別の部分がごちゃごちゃしている。
多分、 Main はすっきりさせた方が後から見やすい。
11
:
つれづれなるままに
:2021/05/09(日) 22:01:07 ID:FTDUrn/c0
クラスとインスタンスのイメージが沸かない。
命令の意味を知らないだけかと思ったが、どうもそうでもないらしい。
この辺りは、メモリ確保の話になる。
C言語をマスターしている人でないと理解できないため、C#の入門サイトでは、
「入れ物」とか「設計図」とか、わざとふわっとした表現にしてある。
C#ではメモリの管理が自動とは言いつつも、Cほど細かくやっていないだけで、実際はやっている。
どうも腑に落ちないときは、メモリを意識すると良いかも知れない。
12
:
つれづれなるままに
:2021/05/09(日) 22:03:40 ID:FTDUrn/c0
インスタンス化された肛門の排出メソッドでうんこをnew new出す
13
:
つれづれなるままに
:2021/05/11(火) 19:39:30 ID:FTDUrn/c0
クラスは何と言うか、霧とか幽霊みたいなイメージ。
そこにあるが、とりあえずないものと考える。
newとかして実体になる。
実体化した後も、どういう代入をするかで分かれる。
代入というと値を入れるイメージしかなかったが、
それに加えて参照型がある。
値そのものではなく、その値がある場所だけを指す。リンクみたいなもの。
紙の上で計算する場合と異なり、メモリをどのように扱うかとう問題があるため、
少し勝手が違う。
14
:
つれづれなるままに
:2021/05/13(木) 19:11:15 ID:FTDUrn/c0
「C# 入門」で出てくるサイトをいくつか見ている。
サンプルコードを見てどのような結果になるか頭の中でイメージできるかの確認。
誤字脱字があったりバージョンが古いものもあるので、
書籍を一冊は買った方が良さげ。
15
:
つれづれなるままに
:2021/05/13(木) 22:01:10 ID:FTDUrn/c0
インスタンスが鍵に思えてきた。ただ、その鍵は自分で作成できる。違う名前で複数作成できる。
クラスには複数の鍵のかかった扉があって、合っている鍵を差さないとアクセスできない。
ただ、鍵を持っていてもアクセスできないものや、逆に持っていなくてもアクセスできるものもある。
何にしても、通常、あるクラスにアクセスしようとすると、それに合ったインスタンスを仲介しないといけない。
16
:
つれづれなるままに
:2021/05/14(金) 00:59:35 ID:FTDUrn/c0
コンストラクタは基本的には初期値を設定するためのものらしい。
そのため、自動的に実行される必要がある。
ただ、ReadLline()などもコンストラクタで作成できるため、
これらも自動実行されることに注意。
17
:
つれづれなるままに
:2021/05/14(金) 01:12:15 ID:FTDUrn/c0
インスタンスを作成したときに最初に見るべきなのはコンストラクタ。
スクリプト全体でまずMainを見るのと同じ。
18
:
つれづれなるままに
:2021/05/14(金) 10:05:35 ID:FTDUrn/c0
インスタンス作成時に引数を設定していても、サブクラスからスーパークラスを呼び出す場合、スーパークラスでは引数無しで扱われるっぽい。
同じ引数を使うなら base を使う。
19
:
つれづれなるままに
:2021/05/16(日) 21:33:46 ID:FTDUrn/c0
windowsフォームでGUIを作成することに成功。
以前エラーが出ていたがいつの間にかなくなった。何かインストールしたかな。
VS自体が私のパソコンには重ためなので、フォームを出すと時間がかかる。
たまにタイムアウト(?)することもある。もう一度やると動く。
20
:
つれづれなるままに
:2021/05/17(月) 21:01:30 ID:FTDUrn/c0
言語の全貌がつかめない。
というか、機能拡張の積み重ねが膨大なため、まとめようとしても無理なんだと思う。
同じような機能をつけようとしても、そのやり方が複数あるように見える。
そしてその中でどれを使うべきなのかよく分からない。方法が何通りあるかも分からない。
GUIの作り方は少しずつ分かって来たので、
自分専用の辞書ツールを作りながら勉強しようかな。
プログラミングスクールや入門書に頼りたくなる気持ちも分かる。
入門レベルだと多分中身はネットに落ちてる情報と同じだろうけど。
21
:
つれづれなるままに
:2021/05/18(火) 14:30:49 ID:FTDUrn/c0
TreeViewクラスのメソッドやイベントなどだけでかなりの数がある。
やはり、自分が使ったもの、よく使うものだけを抜粋したものが必要
22
:
つれづれなるままに
:2021/05/19(水) 11:11:36 ID:FTDUrn/c0
VSを使えばGUIはある程度自動で出してくれる。
Form1.cs と Form1.Designer.cs を自動生成し、partial クラスを使って自動でまとめてくれる。
しかし、VSが予め用意していないようなパーツを作る場合、自動作成されたコードの一部を自分で書き替えないといけない。
例えば、今windowsフォームで、エクスプローラの左側に出てくるようなツリーを作りたいのだが、
ツリーのフォームはあるものの、既存のディレクリやファイルを読み取って同じ数だけノードを作る、といったことは
自作しないといけないらしい。
disposing の部分は多分不要になったメモリの解放などを行っている。
自分はそこをいじるレベルではないし、いじる必要もないと思う。
InitializeComponent というクラス。ここからが配置や処理関連らしい。
詳しい使い方が分からなくても、検索や英単語のもともとの意味から大体の役割は推測できる。
また、自動生成のコードであるため、冗長になることはあっても、規則正しく並んでいる。
意味が分かってくると、段々見やすくなってくる。
23
:
つれづれなるままに
:2021/05/19(水) 16:03:44 ID:FTDUrn/c0
ノードをコードを書き換えて追加することに成功。
サンプルでフォームで一つ作成した後、そのノードを持つ行と同じように書けばいいだけ。
これをベースにして、ディレクトリを読み込んでフォルダとファイルの一覧を作る。
24
:
つれづれなるままに
:2021/05/19(水) 17:03:32 ID:FTDUrn/c0
自分でtreeviewを書く場合、Form1.Designer.cs ではなく Form1.cs の InitializeComponent() に記載可能。
なるほど。partial ってそういうことか。
ただしこの場合、今の自分の書き方が悪いだけかもしれないが、
Form1.cs[Design] に表示されない。
25
:
つれづれなるままに
:2021/05/21(金) 10:45:14 ID:FTDUrn/c0
「変数」と言うと今まで単に数値や文字列を代入するためのものと捉えていたが、
この認識を少し変えないといけないと思う。
C#の場合、int や string と言ったものさえ、そういうクラスとして様々なフィールドやメソッドを持っている。
int型の変数を作るとは、その変数を通して int が持つメソッドにアクセスするということだと思う。
そしてクラスは自分でも作ることが出来る。
26
:
つれづれなるままに
:2021/05/21(金) 12:03:29 ID:FTDUrn/c0
Systemなどに標準装備されているクラスの内容もどこかから閲覧できるらしい。
昨日の確認のついでに文法の復習にもなりそう。
英語の勉強で英英辞典使うような感じ。
27
:
つれづれなるままに
:2021/05/22(土) 20:57:19 ID:FTDUrn/c0
static DialogResult Show(
string text // メッセージ
)
戻り値のあるメソッドを呼び出す例。
今まで戻り値が void の例ばかりだったので、見た時何なのか分からなかった。
28
:
つれづれなるままに
:2021/05/22(土) 21:08:33 ID:FTDUrn/c0
変数の宣言とは、何をやっていることになるのだろう。
メソッドだと メソッド名.(引数) という表現になる。
しかし例えば int a だと、スペースで区切っているだけ。クラス?
29
:
つれづれなるままに
:2021/05/22(土) 21:36:25 ID:FTDUrn/c0
メソッドは、宣言にしても呼び出しにしても、
戻り値があるか否かで見た感じが少し異なる。
宣言だと void の代わりに見慣れない文字が急に現れる。
呼び出しだと、その戻り値を利用する場合、戻り値を代入する変数が左辺に記入される。
30
:
つれづれなるままに
:2021/05/22(土) 21:42:31 ID:FTDUrn/c0
MessageBoxButtons.YesNo, // ボタンの設定
MessageBoxIcon.Question); // アイコンの設定
代入ではなく列挙体から引用している(enum)。
"."はクラスやメソッドの位置を示すだけではない。
31
:
つれづれなるままに
:2021/05/22(土) 21:43:59 ID:FTDUrn/c0
>>27
は呼び出しじゃなくて宣言だ。
32
:
つれづれなるままに
:2021/05/22(土) 21:48:07 ID:FTDUrn/c0
動いているコードを読めないと、自分でそれを書くことは出来ない。
英作文と同じ
33
:
つれづれなるままに
:2021/05/22(土) 22:07:45 ID:FTDUrn/c0
スクールとか入門書とかってどうなんだろう。
入門レベルであればネットに落ちているものとそう変わらないのでは。
34
:
つれづれなるままに
:2021/05/23(日) 00:31:51 ID:FTDUrn/c0
使い方さえ覚えればどんなソフトよりも自由に使える。
無料で公開するなんて素晴らしい。
35
:
つれづれなるままに
:2021/05/23(日) 13:07:09 ID:FTDUrn/c0
戻り値を宣言時に記入することに違和感が強いらしい。
疑問を感じたところを調べると、戻り値であることが多い。
今まで使っていた言語が、戻り値をはっきりとは意識していなかった。
最後に吐き出される数値が結果的に戻り値になるというだけ。
したがって、戻り値は必ず最後になる。
それを最初に持ってくるところに違和感があるらしい。
36
:
つれづれなるままに
:2021/05/23(日) 13:12:46 ID:FTDUrn/c0
コントロールやそのプロパティなどはC#が用意してくれてる。
自分がまだその引き出し方に慣れていないだけ。
またこれに慣れることは、人によっては難易度が高すぎる。
アプリケーションを作るとは、必要な機能をより簡単に、直感的に呼び出せるように整えること。
プログラミング言語がスラスラ理解できるから、アプリケーションにまとめる必要はない。
また、スラスラ理解できるようになれば、
アプリケーションを使うのも言語の機能を呼び出すのも難易度は同じ。
37
:
つれづれなるままに
:2021/05/24(月) 10:22:48 ID:FTDUrn/c0
デリゲートが少し分かってきた。
メソッドを代入できる変数などと説明されていることがあるが、まさにそのまま。
int a =1; などと書くように、
右辺にメソッドを持ってこられる。
メソッドに別のメソッドをくっつけたり剥がしたりするのに使うらしい。
38
:
つれづれなるままに
:2021/05/24(月) 13:37:50 ID:FTDUrn/c0
デリゲートは、変数だけ決まっていて、処理だけ変えたい時に使うっぽい。
変数が2つ用意することは決まっているが、その2つを足すのか引くのかは後から決めたい、みたいな
39
:
つれづれなるままに
:2021/05/24(月) 13:53:19 ID:FTDUrn/c0
ああ、分かった。デリゲートはメソッドを入れる変数と言うより、
メソッドに型を与えているのだと思う。
そして何のために型を持たせるかと言うと、そのメソッドを引数として扱うため。
method というメドッドに整数値の引数を与えようとすると、method (int a,int b) のように、
引数の型と変数名が必要になる。
しかしただのメソッドだと型がないためこれが出来ない。
そこで、
delegate void Dele(); //宣言
Dele dele = new Dele; //インスタンス化
などしてインスタンス化すれば、型を持ったメソッドが生まれる。
これで他のメソッドで引数として使える。
中身が入替自在なのは、
型を持たせるために入れ物に入れるような形になるためだと思う。
40
:
つれづれなるままに
:2021/05/24(月) 14:11:40 ID:FTDUrn/c0
今まで経験のないことだったので分かり辛かったが、慣れると便利そう。
処理をするために数値を引数として渡すのは分かるが、処理ごと渡す。
41
:
つれづれなるままに
:2021/05/24(月) 15:47:29 ID:FTDUrn/c0
public event DemoDelegate DemoEvent = delegate(string name) {};
event は単純に delegate の一種だと思って良さそう。
一種と言うか制限。そのクラス内でしか使えなくしている。
それ以外は使い方も性質も delegate と同じ。
42
:
つれづれなるままに
:2021/05/24(月) 21:34:40 ID:FTDUrn/c0
メソッド(Main)内でフィールドを宣言するとエラーが出た。
というか、クラスで宣言する変数をフィールドと呼ぶらしい。
なんで?
新着レスの表示
名前:
E-mail
(省略可)
:
※書き込む際の注意事項は
こちら
※画像アップローダーは
こちら
(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板