ふらっと C#,C♯,C#(初心者用) Part132
■ このスレッドは過去ログ倉庫に格納されています
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part131
http://mevius.5ch.net/test/read.cgi/tech/1504861931/
■関連スレ
C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
http://mevius.5ch.net/test/read.cgi/tech/1492843013/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured >>290
A.Zip(B, (a, b) => new { a, b }).Where(ab => IsFemale(ab.b) && ab.a == "田中").Count() >>285
「猫でもC#」は「スッキリわかる Java入門 第2版、2014」で、
オブジェクト指向を学んだ人向け
本当の素人には、向いていない >>291
ありがとうございます
結構難しいですね。解読して勉強させて頂きます >>291
Whereいらない Countが条件節取れる >>288
ASP.NET Coreはコンソールアプリだしね >>293
A.Zip(B, (a, b) => new { a, b })
.Where(ab => IsFemale(ab.b) && ab.a == "田中")
.Count()
改行するだけで随分理解しやすくなるはず
A.Zip(B, (a, b) => new { a, b })
.Count(ab => IsFemale(ab.b) && ab.a == "田中")
Where要らないの意味も解りやすくなるはず >>286
上級者がどうやって作ってるかを見て、自分が思ったやり方と違う部分を見つけて意図を聞くのがいいかも
まぁ相手が付き合ってくれることが前提だけど
どのみち初学者の場合、学習曲線はある程度学んだ時点から一気に上昇するもんなので、最初はコツコツ疑問を潰すしかないよ あと同じような内容でも入門書は評判の高い順に何冊か読んだ方がいい
自分に合った説明が一冊の中に全部詰まってる事なんてないから >>290
name[100], age[100] みたいにデータを列持ちするのは現代的なプログラミングにおいては非常に悪い作法なので今すぐやめたほうがいい
クラスを作って行単位で持つのが基本 >>290
氏名と性別を持ってるクラスのListにしたほうがいいよ >>304
処理を付加したかったり読み書き制限したりしたかったらクラスと言うか、構造体でできることはクラスで全部できるからあえて構造体を選ぶ場面は少なくないか >>304
win32api呼び出す時以外は使い道ないかも。 別に構造体でないとPInvokeできないということはないはずだが
StructLayoutはクラスのレイアウトも制御できるわけで ポインタじゃなくて構造体のコピー寄越せって関数とか >>304
十分小さい時は構造体の方がパフォーマンスがいい >>304
C/C++連携かパフォーマンス最適化か
1. Microsoft (2008)
1) It logically represents a single value, similar to primitive types (int, double, etc.).
2) It has an instance size under 16 bytes.
3) It is immutable.
4) It will not have to be boxed frequently.
https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/choosing-between-class-and-struct
2. Effective C# 2nd(2010)
1) Is the main responsability of the type data storage?
2) Is its public interface defined entirely by properties that access or modify its data members?
3) Are you sure your type will never have subclasses?
4) Are you sure your type will never be treated polymorphically?
3. とあるStackOverflowの回答
1) You use structs for performance when stored in arrays.
2) You need them in code passing structured data to/from C/C++
3) Do not use structs unless you need them:
https://stackoverflow.com/a/598268 >>304
ゼロ初期化で良いものでshort3つとか小さいものは、クラスより遥かに軽いので、万の桁で呼ぶなら構造体にする。
あとGCで回収させずに、メソッド終わったら即捨てたいものとか。これもそのメソッドを頻繁に呼ぶ時に。
小さい構造体はヒープではなくてスタックに置かれて、抜けたら無くなるので効率とかより、GCが呼ばれてる暇がなくてもちゃんと開放される。
よく使うのは、挙がってるの以外だと描画周りに使う事ある。
ちなみに、処理を付加すると言うか、メソッド生やすのは拡張メソッドで無理が効くようになったから、関数載せたい、でも関数の参照持たせたくない!もかなりなんとかなる。 ふと思ったのですが、メソッドで匿名型クラスのインスタンスを返すことってできますか?
返すことができるなら返り値の型になんて書けばいいのでしょうか?Typeはだめでした あえていうならdynamicだけどメソッド超えるなら匿名型は諦めよう 文字列型のIdプロパティも持つクラスHogeのリストList<Hoge>からIdのカンマ区切りの文字列を求めたいのですが、
普通にやると
string.join(",", items.Select(i => i.Id));
とループが2回走るんですが、これをLINQか何かで1回のループで求められるでしょうか?? >>319
string.JoinにIEnumerable<string>渡してるから、そのままでループは1回になるんじゃないか >>320
items.Select(i => i.Id)
あれ、このSelectでもう1回ループまわる??
よくわかんなくなってきた vb.netを何年か使って仕事してたのですが、c#に移行していくことになったのでc#の学習を始めようと思っているのですが、おすすめの書籍はありますか? >>324
Effictive C#とか
古いけど 実戦で役立つC#のイディオムなんちゃら
割とよかった
基本をサッと把握するにはこれで良いと思う
基本を抑えたらCLR via C#とか読むべき
dotnet coreならマイクロソフトのドキュメントかな
アップデートが速すぎて本が出ない >>325
>>326
ありがとうございます。
基礎を理解するのに、独習C#かオライリーのC#の購入も検討していたのですが、その2冊についてはいかがでしょうか?
あまり役に立たない様なら、おすすめいただいた3冊を購入してみようと思います。 >>327
正直最初の一冊は好きなの選べばいいよ
それで足りないと思ったらここを含めてお勧めされてる本をレビューなんかで評価の高い順に読めばいい
どの本の内容があんたに合ってるかはあんたにしかわからんのだから 誤植がない本がいいよ
C#始めた頃に買った入門本で、「なんでこうなるんだろう・・・」と嵌まって時間浪費したことがある
誤植に気づけるまでのレベルなら流せる問題が、一言一句読み解きながら進めてるときに
誤植にあたると学習コストが無駄に跳ね上がる
まぁ、読む前にそれを気づくのは至難の業だから、評価高い本と初版避けることくらいしか方法ないけど >>324
VB何年かやってたなら@ITの記事を一通り斜め読みするだけでも十分でしょ >>329
そう言うのこそ
なんでこうなるのだろう?
って思った時にここで聞けばいいんじゃね? この業界歴史が浅いから本が必ず正しいことを言っているとは限らない点も注意だな
長くたって結局将棋とか過去の棋譜を使わないほうが強くなったらしいし
未来は自分で切り開くんだよend >>333
ある意味、正論だな。
ここで回答してる奴でここで質問したことのある奴は殆ど居ないんじゃないのかな。 >>335
してるよ!
c#の構文解析でいいライブラリねーの?
って聞いてから返答ないままだよ! >>334
StackOverflow英語版かな? >>336
凄いアバウトな聞き方w
じゃ、.NET Frameworkって回答しとく。 >>338
あんの?
確かに計算式はやってくれんだよね 具体的には処理フローを出力したい
reflectionでやれればそれでもいいし
ソースの文字列から構文木的なものを返してくれるならそれでもいいし >>339
Roslyn関連のライブラリって構文解析してくれるんじゃないの? >>341
おお!
行けそう!行けそう!
ありがとうございました!
まさかこんなものが出てるとは 偉そうなこと言っときながらRoslynも知らないとはwww >>346
c#の追っかけしてるファンじゃないと知らんわ >>347
少なくとも追加されてから
c# 構文解析
でググり続けた俺にはかすりもしなかったねw VSで使われてるコンパイラだろ?そんなの俺でも知っとるわ。 >>349
うん、普通に出るね
多分1年前ぐらいにググって
無かったから2〜3番目ぐらい見て
華麗にスルーしてたんでは無いかと 構文解析に興味を持つようなやつがRoslynすら知らないとは >>347
じゃあ構文解析なんて無理だから諦めた方がいいよ ヒストリカルに字句解析と構文解析が何故分かれているのか疑問に感じるバカは多いと思う。
俺もバカの一員として分けなくてもエエやん?と思い実際に作ってみたら、何故分かれているのか体感したという。 忙しい現代社会。
すぐレスしてくれそうだからではないか。 >>352
実際あんまり興味無い
こんな言語マニアしか食いつかないようなもんで
人生費やすのはゴメンだった
だからアイディアはあったけど
構文木作成部は保留にしてお蔵入り状態にしてた >>360
Excel方眼紙に出力してくれ。
低レベルのSIerに納品する資料に使える。
スマン、低レベルはSIerのデフォだったかwww >>361
それも考えたんだけど
自宅にexcelってないんだよね
なんで文字と図形と線を出力できるような簡単なベクトルデータってないんけ?
と思ったら笑っちゃうぐらい無くてさ
とりあえず画像データでええかー
的な
機械的に処理フローを
描画するc#のコードを吐き出して
画像で保存 >>362
XPS, SVG, PostScript知らんのんけ? >>363
だから編集できねぇじゃんそれじゃ
画像と変わんないよ
個人でwordとかフォトショとかイラレとか持ってるなら別ですが ここは初心者の質問スレです
雑談したいのなら他へ行ってください >>365
じゃ、Open XML SDKを使ってExcel出力すれば?
Open XMLの仕様書ってpdfで6000ページほどあるが君なら楽勝たろ。 じゃあ、最後、svgならincscapeでいけんだね
こいつ日本語扱えた覚えがないからスルーしてたけど
時代は変わったのかとりあえずフォーマット知らねーけどやってみるわ 末尾に#どう思いますか?という行を付け加えれば質問風に雑談できるのでは? >>362
Windows なら Enhanced Meta File でいいんじゃね?
c# emf 作成
とかでググれば作り方はわかると思う >>373
ありがとう
svgと合わせて調べてみます
>>374
なんか話したい話題があるなら質問しろ >>375
御託はいいから新小岩駅に行ってNEXに飛び込んで死ね >>377
スレ違いどころか
板すらあってないじゃんw プロパティとメソッドの使い分けってどうするのです?
例えばクラスが持ってるリストの件数を返すCountとか、ある項目が存在するかどうかを返すIsItemExistとか
こういうのはプロパティかメソッドかどっちで実装するのです? >>379
クラスの内部状態を返すのならプロパティでしょ。 DIでInjectしたServiceは、フィールドに保持する?それともプロパティに保持する?
どっちも見かけるから、皆さんどういう風に使い分けてるかなと 困ったら全部getなんちゃらでメソッドにしちゃえばいいじゃん(適当)
Isなんちゃらはプロパティでね、大抵 >>381
オレはパブリックはプロバティーでプライベートはフィールドってのが軸だな
勿論例外もある
つまりコンストラクター使ってDIならフィールドかな >>385
確かにw
Isなんちゃらはプロパティ、なんちゃらExistはメソッドってイメージがあるな >>388
ごめん
確かに、はそれが変だなってことにかかってて、そのあとは俺が持ってるイメージの話
分かりにくかったな >>389
よこからついでに突っ込むけど、メソッドでexistって動詞を使うこともまずないと思うよ
存在しろって言われても困るでしょうw
〜Exitsというプロパティなら普通にある ■ このスレッドは過去ログ倉庫に格納されています