X



C#, C♯, C#相談室 Part97
0001デフォルトの名無しさん (ワッチョイ d707-bKpv)
垢版 |
2022/12/21(水) 10:18:38.02ID:DxBIri9+0
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512

■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/

■コードを貼る場合はこちら
http://ideone.com/

■前スレ
C#, C♯, C#相談室 Part94
https://mevius.5ch.net/test/read.cgi/tech/1553075856/

■次スレは>>970が建てる事。
建てられない場合は他を指定する事。

C#, C♯, C#相談室 Part96
https://mevius.5ch.net/test/read.cgi/tech/1639965805/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
0092デフォルトの名無しさん (ワッチョイ 137c-Or7w)
垢版 |
2023/01/10(火) 19:32:45.96ID:IC+XgAqf0
そもそもC#のスレだからすれ違いだがw

printf("%sの番です\n", player == 1 ? "●" : "〇");
をifの前にするとか(それぞれにあるから冗長)
プレイヤーの処理もPlayerXpos()とかに出すとかすれば良いのでは?
0093デフォルトの名無しさん (ワッチョイ b101-tb1I)
垢版 |
2023/01/13(金) 06:38:18.48ID:CqT5d+dn0
ありがとうございます
0094デフォルトの名無しさん (ワッチョイ ca01-FIs7)
垢版 |
2023/01/15(日) 19:05:41.63ID:CnKOeOE30
Shift-JISの文字列をutr-8に簡単に変換する方法ってありますか?
やはり一度Stream(バイナリ)に変換する必要があるのでしょうか
0096デフォルトの名無しさん (ワッチョイ ca01-FIs7)
垢版 |
2023/01/15(日) 19:25:34.21ID:CnKOeOE30
>>95
つまりstringの状態でencodingは可能なのですか?
0097デフォルトの名無しさん (ワッチョイ ca01-FIs7)
垢版 |
2023/01/15(日) 19:28:04.22ID:CnKOeOE30
C#でRestAPIを投げてブラウザ側から貰ってくる文字列はShift-JISらしい
それでC#はutr-8で表記されるため変換(Encoding)が必要になるのです
0100デフォルトの名無しさん (ワッチョイ 954f-wtyD)
垢版 |
2023/01/15(日) 22:56:10.93ID:AxXMsEIz0
そのREST APIをどうやって呼び出してるのか知らんけど
真っ当なサーバならContent-Typeにcharset設定してて
一般的なライブラリなら文字列として読み取るときにcharset参照して適切に文字列型に変換してくれる
から特にプログラマが考えることはない
これらの前提が崩れてるなら文字列として読み取るんじゃなくてバイト配列として読み取って
System.Text.Encodingクラスを使ってバイト配列をstringに変換する必要がある
この場合変換先の符号化形式を考える必要はなくてShift_JISをstringに変換することだけ考えればいい

もしライブラリの都合でstringとして受け取ることしかできなくて
かつその時点で文字化けが出るようなら
それはもうどうしようもないので使うライブラリを変える必要がある
0103デフォルトの名無しさん (ワッチョイ ca01-FIs7)
垢版 |
2023/01/16(月) 01:06:54.26ID:Iz2auSAp0
>>100
なるほど
助かります!
0106デフォルトの名無しさん (アウアウウー Sa91-5Koo)
垢版 |
2023/01/17(火) 19:13:35.87ID:reGY8TLTa
charsetのタグいれればええんかね
0110デフォルトの名無しさん (ワッチョイ 211d-+AQV)
垢版 |
2023/01/18(水) 21:51:34.28ID:oIAAyMph0
win32APiのChangeDisplaySettingsExをC#から呼び出して、
モニタのポジションを変更してるんだけど、
変更直後にScreenのBoundsから値をとっても値が変化しない・・・
アプリ再起動するとちゃんと変わってる。
ディスプレイの設定ってレジストリに保存してるから、もしかして
アプリ再起動しないとScreenクラスのBounds反映されない?
アプリ再起動せずになんとかする方法ないですかね?
0112デフォルトの名無しさん (ワッチョイ 954f-wtyD)
垢版 |
2023/01/18(水) 22:14:35.47ID:/+rmiMsB0
Screenオブジェクトフィールドに保存してたりする?
毎回Screen.AllScreensとか.PrimaryScreenとかから取得すればどう?
ところでSystemEvents.DisplaySettingsChangedイベントは発生してる?
0119デフォルトの名無しさん (ブーイモ MM2e-laSj)
垢版 |
2023/01/19(木) 10:51:30.57ID:Iv2veF3WM
>>113
コンパイル時に型チェックしたいなら既存の型をインターフェースで定義し直して呼び出し側も修正
でもこういう変更が必要な状況はほとんどないのでコンポジションで移譲するケースなんじゃないかな

>>117
トレイトでもインターフェースでも同じだよ
0122デフォルトの名無しさん (ワッチョイ 06bb-JXbu)
垢版 |
2023/01/19(木) 11:31:03.31ID:kysdIh6r0
質問内容はクラスをまとめたいってことなので、ずれちゃう話にはなるけどさあ
(フレームワーク等を使う場面を除いて)初心者中級者のうちにクラスを継承をしようと思ったら設計段階でおかしいので、正解はどうするべきなのかを聞いた方がいいんじゃないのかな
0124デフォルトの名無しさん (ドコグロ MM21-ha7Y)
垢版 |
2023/01/19(木) 12:21:58.33ID:tEHmCOQcM
やりたいことは
いくつかのプロパティを持つデータを格納するだけのクラスAがある
クラスAにバインド用のプロパティをいくつか追加したクラスBを作って、それのリストをDataViewにバインドしたい

AとBのすべてのプロパティを書いたクラスCを作ればできるけど、なんとかして少ないコードで実現したいです
0129デフォルトの名無しさん (オイコラミネオ MMe5-7DGa)
垢版 |
2023/01/19(木) 18:00:00.70ID:pNQOSNx5M
ここですら見かけない超クソ黒魔法もあるけど全くお勧めしない

普通にコンポジションで書くのが正解じゃないかな
アンマネージドなものをラップするのと変わらない
手書きでも自作コードジェネレータでもどうぞ
0131デフォルトの名無しさん (ワッチョイ 29a7-w88e)
垢版 |
2023/01/19(木) 19:44:59.20ID:cZ+iShes0
やりたい事は理解できる
構造体を合体させるにあたりフィールドで保持すれば良いというのはその通りなんだがアクセス手段が冗長になるのは嫌っていうワガママな気分によくなる
C++のように素直に構造体継承や多重継承認めてくれって思う事は頻繁にある
0139デフォルトの名無しさん (ワッチョイ e379-TshA)
垢版 |
2023/01/21(土) 16:52:35.79ID:H5hcEaoi0
C#は基本的に
・static寄せ集めユーティリティのクラス
・必要な画面フォームのクラス
・メインプログラムのクラス
この3つ以外要らないのだよ
意識高い系が説くMやらVに振り回されてはいけないのだよ
変な抽象化は問題をややこしくするだけだと学ぼう
0145デフォルトの名無しさん (ワッチョイ 5301-bbWX)
垢版 |
2023/01/22(日) 12:53:40.50ID:8KSe/b5e0
最近MVVMのほうが楽じゃね?って思ってきた
楽しいし
0146デフォルトの名無しさん (ワッチョイ 5301-bbWX)
垢版 |
2023/01/22(日) 12:54:24.84ID:8KSe/b5e0
これもすべてソースジェネレーターのおかげかもしれん
さすがC#
0147デフォルトの名無しさん (スッププ Sd1f-OsG9)
垢版 |
2023/01/22(日) 17:03:04.26ID:jvNfJ0Pqd
>>139
うちがWindowsの業務クライアントアプリ系を委託してるソフトハウスがまさにこんな感じだわ
イベントハンドラからSQL投げてる
ただしstaticユーティリティクラスではなく共通の神フォームクラスがあって、全てのフォームがそれを継承する形
まあレベル低すぎて開発もクソ遅いから、負債自体はそれほど量が多くないのは救いかな
0148デフォルトの名無しさん (ワッチョイ e379-TshA)
垢版 |
2023/01/22(日) 18:32:18.54ID:xRK/d49A0
>共通の神フォームクラスがあって、全てのフォームがそれを継承する形
こういうのよくないな
神クラスのメンテナが異動だかで居なくなだけで誰も保守できない砂上の楼閣アンチパターンに嵌るね
0159デフォルトの名無しさん (ササクッテロラ Spc7-H1Sa)
垢版 |
2023/01/23(月) 10:09:44.77ID:2/794eE6p
>>156
そんなんちゃんと契約書にOSのバージョン指定しとかない会社が悪い
OSバージョンアップされたら何起こるか分からないんだから
最悪作り直しだってあるし、そんなん瑕疵理由にされたらたまらないだろ
0164デフォルトの名無しさん (ワッチョイ d31d-QR4B)
垢版 |
2023/01/24(火) 10:27:18.73ID:yL08sSgL0
ディスプレイ設定の
マルチディスプレイの
複製表示するだとか拡張表示するだとかの設定を
プログラムで取得できますか?
0167デフォルトの名無しさん (オイコラミネオ MM07-88l+)
垢版 |
2023/01/24(火) 17:43:09.31ID:hrk0Jab5M
>>164
.Netのフレームワーク抜きにして

基本的にwindowsの情報はwin32 apiかwinRtかで取得できる
楽かどうかは不明だけど両方ともC#ではアクセスできる

それ以外にレジストリの情報だけと言う場合もあるけど
0169デフォルトの名無しさん (ワッチョイ d31d-DmZS)
垢版 |
2023/01/25(水) 10:31:48.06ID:1QUndYzE0
>>166
WMIの存在知っていて、Monitor〇〇は見てみたんですけど、モニタごとの
情報は取得できるけどマルチディスプレイの設定は見当たらないんですよね。

>>167
win32apiも見たんですが、やはりモニタごとの設定は取得できるんですが、
マルチディスプレイの設定みたいなのが見当たらなかったです。
0171デフォルトの名無しさん (ワッチョイ cf10-nezH)
垢版 |
2023/01/25(水) 11:37:43.88ID:HF2K9cvb0
>>169
上の人が書いているけど、レジストリっぽいですね。

DisplaySwitch.exeによる切り替えは結構ヒットするんだけど、情報取得はみつけられなかった。

WindowsAPIだと、

SetDisplayConfig
QueryDisplayConfig

あたりがそれっぽいのかも?
詳しい人の回答を期待w
0172デフォルトの名無しさん (ワッチョイ 0301-N1F8)
垢版 |
2023/01/25(水) 12:37:42.36ID:SKrgZEWi0
マルチディスプレイの設定って具体的に何よ
最終的に何の項目の値が欲しいのよ
コンパネや設定アプリのこの項目ですとかそういうの書きなさいよ
0174デフォルトの名無しさん (ワッチョイ 636e-ffW7)
垢版 |
2023/01/25(水) 14:06:15.04ID:VgR3j9B70
C言語から入った人間なのでexeファイル=機械語と思いこんでたけど違うんですね……
中間言語?CLR?いやC#もexeファイル作成されるじゃんどういうこっちゃと思ってました
えーっとC#のexeファイルは中間言語で出来てるって理解であってます?つまりexeだけど.net入ってないPCじゃ実行できないってことですよね?
0175デフォルトの名無しさん (エムゾネ FF1f-N1F8)
垢版 |
2023/01/25(水) 14:08:37.83ID:6qMSPLxFF
ならその画面出してキャプチャして画像解析でもすりゃええやん
0176デフォルトの名無しさん (ワッチョイ 638e-RQPf)
垢版 |
2023/01/25(水) 16:47:40.06ID:lfyXBnaV0
>>174
C言語から入ったからじゃない
お前が無知なだけ
0182デフォルトの名無しさん (ワッチョイ 6f79-gNeF)
垢版 |
2023/01/26(木) 15:37:19.08ID:O3LYxWam0
プログラミン好きじゃないけど、稼ぐ手段と考えたら上達しないんですかね?
ていうか、うまく出来もしないのに好きでいることなんて出来るでしょうか
成果が出て好きになるのでは?
0187デフォルトの名無しさん (ワッチョイ 0301-N1F8)
垢版 |
2023/01/27(金) 01:10:49.54ID:unSIwQ1w0
駆け抜けてゆく 私のメモリ外♪
0188デフォルトの名無しさん (ワッチョイ 6301-jGE9)
垢版 |
2023/01/27(金) 18:21:50.28ID:01PH/qCE0
ここで聞いていいのかわからんけど
WinUI3
Windows App SDK
MAUI
こいつら並行して存在してるみたいだけど関係性ってどうなってんの?
UWPはディスコンになったって理解でいいの?
0189デフォルトの名無しさん (ワッチョイ 0301-N1F8)
垢版 |
2023/01/27(金) 21:43:33.88ID:unSIwQ1w0
多分Microsoftも分かってない
0190デフォルトの名無しさん (ワッチョイ ff7c-88l+)
垢版 |
2023/01/27(金) 21:49:53.26ID:P0p3cJ8l0
本当はMSも新しいものにシフトしたいけどWin32は捨てられないし
レガシー無視ならWindowsである必要が無くなるからなぁ
なんやかんやでwebの技術でアプリは作れる時代だし
XAMLなんかはそろそろ辞めた方が良い気がするんだよなぁw
レスを投稿する


ニューススポーツなんでも実況