ふらっと C#,C♯,C#(初心者用) Part148
■ このスレッドは過去ログ倉庫に格納されています
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part147
http://mevius.5ch.net/test/read.cgi/tech/1582100741/
■関連スレ
C#, C♯, C#相談室 Part94
http://mevius.5ch.net/test/read.cgi/tech/1553075856/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
http://referencesource.microsoft.com/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured 978 名前:デフォルトの名無しさん (ワッチョイ 1aad-cFKA)[sage] 投稿日:2020/05/26(火) 23:34:30.32 ID:xP2EobkM0 [2/2]
https://www.sejuku.net/blog/47220#Sum
979 名前:デフォルトの名無しさん (ワッチョイ da89-crVl)[sage] 投稿日:2020/05/26(火) 23:55:57.69 ID:pUNOqgdh0 [2/2]
リンク先の例でいうと、ClassName(やその他の項目もあればそれ)も表示させたい場合はどのようにすればいいですか?
980 名前:デフォルトの名無しさん (ワッチョイ 1389-moxv)[sage] 投稿日:2020/05/27(水) 00:07:17.22 ID:Pggemlyq0
>>979 自己レスですが、以下の記述でいけました
var query = result
.GroupBy(x => new { x.Name, x.ClassName })
.Select(x => new Test() { Name = x.Key.Name, Points = x.Sum(y => y.Points), ClassName = x.Key.ClassName });
foreach (var group in query)
{Console.WriteLine($"{group.Name}の合計点数:{group.Points}点;ClassName{group.ClassName}");}
981 名前:デフォルトの名無しさん (スップ Sdf3-Tvg7)[sage] 投稿日:2020/05/27(水) 00:15:29.78 ID:DUgyxf22d
>>980
キーが1つならGroupbyでわざわざ匿名クラス使う必要ないんじゃね?
989 名前:デフォルトの名無しさん (ワッチョイ 9961-moxv)[sage] 投稿日:2020/05/27(水) 09:37:11.33 ID:sy4nr1lC0 [2/2]
>>981
ClassName引き出すのはどうするんだろ?
990 名前:デフォルトの名無しさん (アウアウウー Sac5-5vhd)[sage] 投稿日:2020/05/27(水) 09:58:43.31 ID:liCJZGAla
必要ない
x => x.Name でいい
--------------
.GroupBy(x => x.Name)
.Select(x => new Test() { Name = x.Key.Name, Points = x.Sum(y => y.Points), ClassName = x.Key.ClassName });
にすると、次のようなエラーがでますが、どうしたらよろしいでしょうか。
CS1061 'string' に 'ClassName' の定義が含まれておらず、型 'string' の最初の引数を受け付けるアクセス可能な拡張メソッド 'ClassName' が見つかりませんでした。 >>2
正規化されてないからめんどくさいな。
二重ループみたいですげーダサいけど
var query = result
.GroupBy(x => x.Name)
.Select(x => new Test() {
Name = x.Key,
Points = x.Sum(y => y.Points),
ClassName = result.Find(z => z.Name == x.Key).ClassName }); Ruby では、すべてのクラスの祖先の、Object クラスに、
そのインスタンスのクラス名を返す、class というインスタンスメソッドがあるので、
すべてのクラスで使える
C# には、そういうメソッドが無いの?
p "ruby".class #=> String
p 100.class #=> Integer >>4
ClassName = x.First().ClassName
でおk タプルやジェネリッククラスに対して、型を代入済みの型を作ることってできないんですか?
(string, string)型とか、List<string>型とか、わざわざクラスを作るまでもなさそうなデータ型って簡単に定義できないのでしょうか >>12
紹介しといてなんだけど個人的にはあんま使わない
そのファイル内だけでしか有効にできないし型なんてIDEの補間でさっと書けるんで 1年後に自分が書いたコード見たら「このコードを書いたヤツを出せ!」と海原雄山になるのがオチよなw >>13
ファイル内限定だったのか・・・・ちょっと1ファイルで試してみて使えるものだから、プロジェクト内どこでも使えるんだと錯覚してたぜ・・・・ >>15
最初からusingディレクティブはみんなそうなってるので ActionやFunc使えば入れられるけどそういう話ではない? ActionとかFuncのscopeの外側で定義されてる変数を
中で同じ名前で定義するとローカルのつもりなのに
衝突してるエラーでるけどこのエラーを出さないオプションって何? >>17
C#ではメソッドそのものは型として扱われてないから
直接変数に代入したり引数として渡したりすることはできない
変数に入れたり受け渡しするためにはDelegateという型に入れてやる必要がある
var foo = obj.method;は不可だけど
Action foo = obj.method;なら可 (ActionはDelegateの一つ) >>21
これでvarが使えない(型推論できない?)のはなんでなんだろ? C#で関数ポインタが扱えない理由って関数のアドレスすらもGCによって変更される可能性があるからって事? >>24
ネイティブとのやりとりならGetFunctionPointerForDelegateとかでできるけど
GCが絡む注意点はデリゲートのインスタンスは保持する必要はあるが
インスタンスのピン留めは必要ない 型推論が効かないて言えばさあ
スタティックフィールドで型推定が効かないのって、あれはなんか理由があるの? 理由あるよ
で、次期バージョンでvarではなくnew側の型が省略できる形で導入される予定 Hogehoge fuga = new(123);
みたいな感じになるの? >>26
匿名型の変数は定義して初期化できるのでそれはちょっと
何か事情があるんだろうね
同じシグネチャーのデリゲートは暗黙変換できる仕様にすると何か問題が起こるのかな >>30
そうそうそんな感じ
省略newは今までvar使えてたところでも使えるから
全部省略new派
var使えるところは今までどおりvar使う派
とかが生まれてきそうな感じしてる
varが使えない理由はこないだufcppの人が喋ってた varで書けるのは構わないし楽だけど
本来の型に戻すエディタの機能が欲しい
書くときにvarで書いて保存時には元に戻したい マウスのポインタを乗っけてると推定された型を出してくれるけどさ
あれ正直、表示しっぱなしにして欲しい時もあるよな >>9
遅くなりましたが、解決策をありがとうございました >>33
自動で戻したいならアナライザー書けば?相互変換はもう既にVS上ならできるでしょ。 >>31
匿名型はその名前の通り型があるからね
匿名型は型が明示できなくても明確な用途があるけど
メソッドの場合はどこかで型を明示しないとほぼ使い道ない
デリゲート同士の暗黙変換ができれば別だけど
そっちはコンパイラの変更が大きいから労力に対してメリットが見合ってない メソッド名が匿名のデリゲートの値を生成する式と考えることは可能だと思うけどな
知らんけど
匿名のデリゲートという概念を導入すると何か問題が起こるんだろうか >>37
それは別に君の勝手だけど、単純にnewする時にも冗長に型名並べてるコード見るとイラッとするw Hoge[] h = new Hoge[]{a,b,c};
var h = new Hoge[]{a,b,c};
var h = new []{a,b,c};
Hage h = new Hage(){A=a,B=b,C=c};
var h = new Hage(){A=a,B=b,C=c};
var h = new Hage{A=a,B=b,C=c}; ←この()が要らないのはなぜですか? >>41
ジャバがそうだから真似しただけ
ただの省略
てか省略なんていくらでもある >>39
匿名のデリゲートという概念を導入するとどういうメリットがあるの? 勉強始めて1か月たつけど、現場のプログラマって普段なにしてんだ
言われた通りコードが書ければ仕事になるの? 職種による
実際にコード書いてる時間なんて2割くらいだったりもする
設計やテストのほうが圧倒的に時間取られたりもする >>44
プログラマーって、もう日本にはいない気がする。ここ5年ぐらい日本人のプログラマー見てない。 VSCodeでコード内の適当な句を選んで「定義へ移動」をよく使ってるんだけどさ
これ、移動先から元の場所に戻るのって、「参照へ移動」の中から選ぶしかないの?
もっとパッと戻れる技があったら教えて!!! >>49
Ctrl+-で戻らんか?
カーソル位置を戻すだけど。 セミナーとかお勉強しないと使えないなこの言語は
一時記憶に収まらない
フィーリングで書かせろや
コンパイルとおんねー コンパイルすら通せないやつが動的言語使ったら悲惨だな >>57
VS使ってみ。
フィーリングでほとんど書けるし、補完してくれるから。 >>57
むしろどんな言語ならフィーリングで書けるんだ? >>60
これ、すごいことだと思う。
良く出来てるわ。 静的解析せずにc#を始めるやつおるんやな
いばらの道ぞ VSはなんかVSにコード書かされてる気分になってくる usingも勝手に補完してくれるし
条件わかんないけど「この型NuGetから持ってこようか?」みたいなサジェストもしてくれる
あ、はい、お願いしますってつい言ってしまう >>67
NuGet適当に見繕ってくれるのはほんとに神だよなぁ。 他アプリに表示されてるリストボックスの中身の情報を抜き取る方法ありますか?
例えば株アプリの株価情報取得したり、ニュースtextを抜き出したりしたいのです
SPY++ってのを調べてるんですけど情報すくないし少し違ったり
むずかしいでしょか? LB_ADDSTRING
LB_INSERTSTRING UIAutomationに対応してるならSystem.Windows.Automation名前空間下の諸々のクラスでいける おれも最近SPY++とWin32API使って他アプリの操作にチャレンジしてみたけど
ツールバー内のボタンクリックができなくて途中で挫折した
時間が出来たらこれ>>71を調べてみたい 画面全部スクショとって座標指定でいいだろ
全部自前で書かれてたらボタンイベントすらねぇんだから
座標指定とクリック、マウスONOFF、キーイベントだけでやるのが正義だろ
とか偉そうなこと言って
造りの問題かクリックイベントすら動かなかったので試験用コンソールアプリ作ってもらいました(´・ω・`) >>70
さんくす、ぐぐったらC++のメッセージ送るやつでてきた、むずい
>>71
UIAutomationに対応してるアプリって一般的なのかな、デフォでみんな
対応してたらいいのに、さんくす
>>73-74
さんくす、座標調べてクリックしたことにするのか
テレビ画面録画するみたいな感じか、でもまあ現実的っぽい
リストボックスの中身取得するのに、スクショとって文字画像認識して・・って 質問だけど
Windowsアプリ作るにあたり
VisualBasicを使っちゃいけなくて(好まれなくて)C#を使うべきっていうのは
どういう理由からですっけ? >>79
あなたが自粛警察するタイプ。
ずばりそうでしょう。
そんな人は人生がうまくいってないから人生にうらみがあるんじゃないかな。
悩みがあったら聞くよ。 こういう残念なやつがいるからワッチョイ有無でスレが必要になる >>73
>>74
マウスイベントかキーイベントって対象アプリにフォーカスないと動かないよ・・・ね?
それじゃ困るんだよなー 人生に不満な人、人の不幸が好きな人、
こういう人は警察という職業に向いている。 >>83
お前はそういう人間が警察をしている世界を望むのか? 人生が超楽しくてしあわせな人は
警察に向かないと思う。
人を笑わせ楽しませる仕事か、あるいは自分の趣味に関わりのある仕事に没頭するか。 >>75
Windowsのコモンコントロール
WinForm/WPF/UWPの標準コントロール
はほぼ対応してるはず
ブラウザはじめ独自描画系はアプリ次第 調べてないけどあんまり対応してなさそう ワッチョイ 15f1-GwrY
ワッチョイ a919-OO8l
アウアウウー Sa11-gmWH
テンプレ理解できない人はNG
>>82
元のレスがマウスイベントにどう関わるかわからないから別件としてレスするけど
>マウスイベント
たまに勘違いしている人がいるがフォームにフォーカスが無くても(フォームがアクティブでなくても)動く
>キーイベント
C#でグローバルキーフックを作った人がいる
http://hongliang.seesaa.net/article/7539988.html >>88
一切見なくていい
そんなもんよりハーバード・シルトの独習C#か↓のサイト見るほうがはるかにいい
https://ufcpp.net/study/csharp/ >>86
さんくす、それならごく普通につくられたアプリならUI Automation使えそう
便利で面白そうなのに、あまりメジャーじゃなさそうなのはなぜなんだろ https://docs.microsoft.com/ja-jp/dotnet/core/tools/dotnet
ここを見てやってるんですが、最初の1ページ目のサンプルで失敗します。
A fatal error was encountered. The library 'hostpolicy.dll' required to execute the application was not found in 'C:\Program Files\dotnet'.
調べても英語の人の書いたブログしか出てこないのですが、
どうすれば解決できますか VisualStudioをアップデートしたら動きました。。。orz dotnet を get して最初にすることは dotnet の update IT掲示板群 ttp://x0000.net/forum.aspx?id=15
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
PS malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip ウルフエディターはC++で作られているようです
2dなのにc++にするメリットはあるんでしょうか
テクスチャの移動程度ならC#でできますよね そもそもC#でできるならC++である必要がないという理由がわからん 3dならC+しか選択肢がないと思いますが、C#ならopenglは使わないと思います C++しか選択肢がない?
例えばUnityならC#でOpenGL使ってるけど? ■ このスレッドは過去ログ倉庫に格納されています