ふらっと C#,C♯,C#(初心者用) Part155

■ このスレッドは過去ログ倉庫に格納されています
2022/06/17(金) 08:42:12.88ID:CPX9Pfyj0
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part154
https://mevius.5ch.net/test/read.cgi/tech/1644416019/
■関連スレ
C#, C♯, C#相談室 Part96
https://mevius.5ch.net/test/read.cgi/tech/1639965805/
■コードを貼る場合は↓を使いましょう。
https://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/
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries/
https://referencesource.microsoft.com/
https://source.dot.net/
・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
2022/08/02(火) 11:32:28.03ID:dOTebwan0
>>448
そりゃ違うでしょ
2022/08/02(火) 11:40:30.28ID:C80vNjl9r
VSCodeはマルチスレッドではないから激重
2022/08/02(火) 12:31:34.28ID:7h3r7KZi0
>>432
3.5も切ってくれれば喜んで4.8に移行するのにと
未だに2.0がメインの俺社
2022/08/02(火) 12:47:10.72ID:5WShikIl0
今どき2.0はきつすぎるな・・・乙
2022/08/02(火) 13:46:27.19ID:d+m2jlTe0
>>449
え?
454デフォルトの名無しさん (ワッチョイ d68e-HyOH)
垢版 |
2022/08/02(火) 14:49:22.13ID:f8W0+U3I0
>>438
馬鹿?
2022/08/02(火) 15:06:09.69ID:Gd43XZqn0
どうでもいいけど無駄に煽るやつ増えたよな、夏休みか
2022/08/02(火) 16:19:25.27ID:rs6fnhcJ0
>>449
同じものだと思ってたんだけど、何が違うの?
2022/08/02(火) 17:11:29.89ID:clHk+QvDM
文字数が違うな
2022/08/02(火) 17:26:15.48ID:aTV235290
文脈で違いのあるケースはある
たとえば、namespace はキーワードだけど名前空間はキーワードじゃないとか

ただ今暴れてるやつはただのアホだろ
2022/08/02(火) 18:00:45.92ID:UKGz6HDN0
C#に限らず初心者板には必ず中身のない煽りカスが枠からシカトでok
2022/08/02(火) 22:55:25.35ID:fEaKkp4Yr
初心者だけどclassって1class1.csファイルで作ったほうがいいのかね?
今はmain.csに全部記入してるけど
2022/08/02(火) 23:09:08.14ID:UKGz6HDN0
その認識で問題ない
更にファイル名とクラス名を一致させとくとVSはファイル名変更したら自動でクラス名も変更してくれた気がする
462427 (ワッチョイ 8ee9-Og+R)
垢版 |
2022/08/02(火) 23:37:30.65ID:HIxaLOVl0
もうIPC通信は使わないんですね。
教えて貰ったgRPCを調べてみます。ありがとうございます。
2022/08/03(水) 07:11:42.49ID:oaEyiw1/r
>>461
なるほどサンクス
2022/08/03(水) 10:00:34.32ID:aXt/7uHrd
>>461
フォルダ階層とnamespaceも一致してないとだめなんじゃなかったっけ?
2022/08/03(水) 10:28:26.50ID:H0TN7wdQ0
namespaceだけ変えて試したけど自動で変更されたよ
仕様は知らんからまあ参考程度に
2022/08/03(水) 10:54:17.16ID:o11ILsU3d
>>465
おぁ、ありがとう。勘違いだったかな。申し訳ない
467デフォルトの名無しさん (ワッチョイ 7a01-dSCr)
垢版 |
2022/08/05(金) 08:16:03.80ID:PgkbhFj60
Classの変数をMainクラスに持ってきたいのですがどうすればよいでしょうか。
https://imgur.com/k6aKv7a
468デフォルトの名無しさん (ワッチョイ 7a01-dSCr)
垢版 |
2022/08/05(金) 08:19:51.47ID:PgkbhFj60
すみません。
上のplayListって変数を
https://imgur.com/1F0sI4K.jpeg
のコメントアウトしているplayListRight.ItemsSorceにぶち込みたいです。
あとplayListRight.ItemTempleteにも上のクラスのtempleteをブチコみたいです。
2022/08/05(金) 08:19:52.21ID:cUxq6qzs0
>>467
public
470デフォルトの名無しさん (ワッチョイ 7a01-dSCr)
垢版 |
2022/08/05(金) 08:21:43.35ID:PgkbhFj60
すみません最初の画像jpegで貼れていなかったので貼りなおします。
https://imgur.com/k6aKv7a.jpeg
https://imgur.com/1F0sI4K.jpeg
2022/08/05(金) 08:23:52.62ID:PgkbhFj60
>>469
public string playList
ってやるとMainクラスでも使えるようになるのですか?
2022/08/05(金) 08:42:07.22ID:H/H3flpk0
とりあえず要望を満たすだけなら、PlayListViewCenterクラスにPlayListプロパティを作ればよさそうに見えるが
根本的にはPlayListView()でプレイリストの読み込みまでやってるのは詰め込み過ぎだろう
2022/08/05(金) 08:46:35.55ID:PgkbhFj60
>>472
最初Mainクラスのメソッドにしてたのですが長ったらしいなと感じてクラスにそのメソッド入れたのですがそのままMainクラスのメソッドとして入れておいたほうが無難でしょうか?
2022/08/05(金) 08:53:40.09ID:H/H3flpk0
>>473
一つのクラスであれもこれもやろうとしない
そのへんの考え方の詳細は単一責任の原則でググってくれ
2022/08/05(金) 08:56:48.47ID:PgkbhFj60
>>474
ありがとうございます、調べてみます
476デフォルトの名無しさん (ワッチョイ 7a01-dSCr)
垢版 |
2022/08/05(金) 10:00:11.06ID:PgkbhFj60
プロパティを追加すると言っていましたがこのような形でよいのでしょうか?
PlayListViewメソッドのplayListをPlayListプロパティに入れる方法がわかりません、、、
477デフォルトの名無しさん (ワッチョイ 7a01-dSCr)
垢版 |
2022/08/05(金) 10:01:02.95ID:PgkbhFj60
すみません。画像上げ忘れました。
https://imgur.com/hZ105MK.jpeg
2022/08/05(金) 12:38:36.41ID:RSiO7Ssf0
ぱっとみ誰かが作ったものをメンテしてるみたいだが、
せっかく綺麗なソースもこうやって素人にズタズタにされていくんよなぁ
2022/08/05(金) 12:56:56.63ID:H/H3flpk0
いくら初心者スレとはいえ、プロパティへの代入方法を聞かれるとは…

>>478
メンテってよりはどっかのサンプルを切り貼りしてるだけっぽくみえね?
2022/08/05(金) 13:47:33.34ID:hxnnat6YM
PlayListViewCenterとPlayListView()とplayListRightの関係性がよくわからん
依存関係が整理されてないとこのレベルでも簡単にスパゲッティ化するのね
2022/08/05(金) 14:01:15.91ID:+4dBSHs70
最初フォームにコントールを貼り付けていった。
ああ、コントロールの数が多くなってきたのでタブ化したい。
それでタブコントロールをフォームに貼り付けて以前のコントロールを
切り取ってタブに貼り付けてもだめでした。
簡単な設定変更でできるもんでしょうか?
482デフォルトの名無しさん (オイコラミネオ MMbd-m4/e)
垢版 |
2022/08/05(金) 14:53:00.30ID:mvNI8q0IM
プロパティは俺も最初よく分からんかったな
俺より先に入社してきてまだプロパティのgetじゃなくてgetter関数作ってる奴もいるけれど
2022/08/05(金) 15:10:35.53ID:PgkbhFj60
サンプル切り貼りしただけですね。
xamlのListViewにx:NameとしてplayListRightをいれていてそいつにアンドロイドからのファイルのフォルダー一覧を表示させたいってことなんですけど、、、
いろいろ試してみましたが無理そうです。無難にPlayListViewメソッドをMainClassにいれます、、、
484デフォルトの名無しさん (ワッチョイ 7a01-7LJf)
垢版 |
2022/08/05(金) 15:42:07.03ID:PgkbhFj60
どうやってPlayListプロパティにPlayListView関数のplayList変数を入れるとか全く検討がつかないのですがどうやれば良いのでしょうか?
2022/08/05(金) 15:46:42.03ID:ICqeCpci0
まず日本語を勉強します
2022/08/05(金) 15:51:27.56ID:PgkbhFj60
>>485
というと?
2022/08/05(金) 16:56:32.29ID:1Rrd8aoz0
public ObservableCollection<PlayFile> PlayList { get; private set; };

プロパティの宣言をこうしておいてPlayListViewの最後で

this.PlayList = playList;

を入れたら期待通りの結果にはなる
2022/08/05(金) 17:17:58.37ID:PgkbhFj60
>>487
できました。
ありがとうございます。
メソッド内でプロパティ名に変数を渡せばよいのですね。
2022/08/05(金) 17:55:56.37ID:aTGNTU2eM
な?WPF流行らない臭いするだろ?
2022/08/05(金) 18:11:42.31ID:PgkbhFj60
>>489
なぜですか?
2022/08/05(金) 19:41:14.95ID:T806aXM50
>>490
さっきやったやつ
誰でもできそう?
2022/08/05(金) 19:57:53.24ID:Ow3srsZsr
>>491
慣れたらいけるのでは?
2022/08/05(金) 21:03:37.37ID:kbVXsa8pM
View/ViewModel/Modelあたりの分離が出来てないのとWPFは関係なくね?
2022/08/05(金) 21:14:35.76ID:cUxq6qzs0
WPFは外側だけ使えばいい
495デフォルトの名無しさん (ワッチョイ faad-L0v6)
垢版 |
2022/08/05(金) 23:31:23.20ID:nKjrktLW0
外側て何?
2022/08/06(土) 06:43:47.00ID:YGqtJRNu0
>>495
UI側ってことでしょう
2022/08/06(土) 07:25:26.78ID:nHm0QuCiM
WPFのUI側でない部分とは?
2022/08/06(土) 07:44:04.39ID:d0E+uIxOM
2006年のものに流行りもクソもあるのか?
2022/08/06(土) 09:32:14.62ID:YGqtJRNu0
WinUIは流行るのか?
かっこいいけどなぁ
2022/08/06(土) 11:49:57.93ID:Mx8J9HCy0
最近まで知らなかったんだけど、
MessageQueue って Core 以降無くなったんだな。
4.8で提案しといて助かった。
https://docs.microsoft.com/ja-jp/dotnet/api/system.messaging.messagequeue?view=netframework-4.8
2022/08/06(土) 13:09:28.58ID:bZh5L3OZM
MSMQを念頭に置いているとはいえAMQPとかでも普通に実装できそうだからCoreに移植されても全然おかしくないだろうけど、戦略的な除外だろう
MS的にはAzure Service Busを推したいところだから代替はないかとMSに相談してきた客をAzureへ誘導できるし、
似たようなものをAWSとかでセルフホストできてしまう選択肢は積極的に潰しておきたかったんだろうね
502デフォルトの名無しさん (ワッチョイ 13ad-eDUT)
垢版 |
2022/08/06(土) 15:55:35.74ID:fi6gTDde0
>>499
WinformやWPF並みの完成度と、開発環境が整えられれば流行る可能性はある
今のWinUI3はまだそれらがない
2022/08/06(土) 19:42:37.30ID:B4aY99WN0
Visual Studioを使わずにテキストエディタで書いているのですが、
WebView2はどのように宣言すればいいのでしょう?
ネットで拾ったソースコードをそのまま使おうとすると、
System.ComponentModel.ISupportInitalizeが参照されていないアセンブリで定義されていますとか、
webView2はコンテキスト内に存在しませんといったエラーが出てしまいます。
using Microsoft.Web.WebView2.Core;でエラーは出ないので、
dllの参照は上手く行っているようなのですが。
2022/08/06(土) 19:53:35.54ID:h2EHbeov0
.NET Framework向けか.NET(Core)向けかWinFormsかWPFかも分からんけど
自分で解決できないならまだテキストエディタで済ます段階ではないので
素直にVS使おう
2022/08/06(土) 20:27:31.37ID:B4aY99WN0
>>504
使えない状況なのでテキストエディタで書いています。
2022/08/06(土) 20:48:39.60ID:B4aY99WN0
すみません、自己解決しました。
dllが足りなかっただけでした。
2022/08/07(日) 08:35:31.35ID:zuBhJhyh0
>>481
それでできるはずだと思うけど、どうだめだったの?
各コントロールの設定が消えてしまったのなら、そういうもの。
設定を消したくなければ、一旦フォームをぐわっと拡げて、
既存のコントロールとタブコントロールを同時に表示するようにして
ドラッグして移動させると設定は消えないけど、そういうことじゃない?
508デフォルトの名無しさん (ワッチョイ 69b1-qy/x)
垢版 |
2022/08/08(月) 10:38:51.65ID:ltHVcLml0
複数個所から参照されているクラスのインスタンスがあります。
このインスタンスへの参照を全てnullにする機能はC#にありますか?

もしあるようでしたら、方法を教えて頂けると助かります。
2022/08/08(月) 10:54:39.76ID:Zu2CvCE20
>>508
パッと思いつく限りだとclassでラップするっていう原始的方法くらいしか思い浮かばない
2022/08/08(月) 13:06:08.72ID:lyYbsRurM
>>508
なんでそんなことしたいの?
2022/08/08(月) 13:07:38.93ID:lyYbsRurM
弱参照使うか
オブザーバー使ってそれぞれ更新するかかな
他にもやり方あるだろうけど達成したい目的次第
2022/08/08(月) 19:52:41.64ID:DioK39uS0
>>507
下記がオブジェクト参照がオブジェクト インスタンスに設定されていませんとか出て
すぐにできないんだなとおもってユーザーコントロールにはっつけてやり直してました。
Controls[$"textBox{i}"].Text = sb.ToString();

エラーのところコメント化して動くかみるとああ、基本的にフォームに貼り付けたものひっぱってくるだけで動くんですね。
ありがとう。
2022/08/08(月) 20:09:42.36ID:9R7bGCkQM
>>512
まずそのゴミプログラム方法をやめろ
どこの誰がそんな糞みたいなやり方を教えたんだ?
-1万点だぞ
2022/08/10(水) 08:10:20.13ID:I7WycSNa0
Controls[$"textBox{i}"]ってのあかんの?
便利やなと思ってたけど
2022/08/10(水) 08:20:57.21ID:ekVbncrCd
設定より規約という言葉もあることだし、ちゃんと管理できてるならいいと思うよ
手で配列作ったりするのはミスの原因になるからむしろダメ
2022/08/10(水) 18:17:13.30ID:8SlAES4I0
この場合はデータバインディングすべきでしょ
2022/08/11(木) 09:46:17.83ID:bzSgGXTd0
名前でひっぱって来るって相当な富豪プログラミングだな
恥かしい名前付けてたらばれるやん
2022/08/11(木) 10:55:14.05ID:L4K0queg0
そういやjavaだとクラス名の文字列からクラス生成できたっけな
2022/08/11(木) 11:00:56.57ID:GF5pk2No0
名前でアクセスするようにしてると、リファクタリングした時に死ぬ
2022/08/11(木) 11:19:42.29ID:vAulrAya0
>>518
C#だって出来るよ
2022/08/11(木) 11:23:07.46ID:bzSgGXTd0
できるできないじゃない
やるかやられるかだといつも言ってるだろ
522デフォルトの名無しさん (アウアウウー Sa55-eDUT)
垢版 |
2022/08/11(木) 12:09:59.60ID:iYrezZwUa
いや、挿すか挿されるかだ
2022/08/11(木) 20:59:48.25ID:lZmFgICj0
でぃぺんだんしーいんじぇくしょん!!
2022/08/12(金) 13:14:48.49ID:QghzorUzM
プログラミング言語C#の欠点
https://mi.5ch.net/test/read.cgi/news4vip/1660273188/
立てました!
525デフォルトの名無しさん (オッペケ Sr5d-FBk5)
垢版 |
2022/08/12(金) 14:24:33.30ID:k3dld6/ur
>>524
ないよ?
526デフォルトの名無しさん (オッペケ Sr5d-FBk5)
垢版 |
2022/08/12(金) 14:25:12.55ID:k3dld6/ur
これライブラリ化したいんですが可能ですかね?
https://qiita.com/furugen/items/74bbdfa126d7cc101a0c
527デフォルトの名無しさん (オッペケ Sr5d-4pii)
垢版 |
2022/08/12(金) 20:49:41.62ID:W9k2A9pZr
複数のプロジェクトにわたるクラスをライブラリ化って厳しいんですかね?
2022/08/12(金) 22:01:15.30ID:nwtzDlak0
そんなデカイクラスってあんの?
2022/08/12(金) 23:07:18.85ID:5/2owLeW0
複数のプロジェクトで使用するクラスだからこそライブラリにするんじゃないのか?
2022/08/12(金) 23:13:47.26ID:8yQHi8YE0
ライブラリの作り方が判らんって話?
・クラスライブラリのプロジェクト作る
・プロジェクトにライブラリにしたいソースぶち込む
・他プロジェクトからDLL、またはライブラリのプロジェクトを参照する
みたいな感じ
2022/08/12(金) 23:32:18.36ID:nwtzDlak0
目的は何なん?
ライブラリ化なんかして複数プロジェクトなんかで呼んじゃうと
影響範囲もそれなりだからね
あーソースコピってビルドしておきゃよかったなんてよくある話だよ
2022/08/13(土) 00:10:08.14ID:bvO6Jh/U0
複数のDLLで構成されたライブラリになるだけで普通に作れると思うけど
2022/08/13(土) 01:03:16.57ID:X5MwWX870
>>531
コピっていい事なんて殆どないだろ
そういう感じのソースがそこら中のプロジェクトに散らばって亜種だらけになった現場悲惨だったぞ
2022/08/13(土) 01:18:32.52ID:w1Rw8Hpr0
レベルの低い現場あるあるやね
コピーしちゃえば少なくとも今動いてるコードは壊れないからね
ただ>>533の言う通り亜種だらけになって共通不良の対策で地獄を見るんだけどね
535デフォルトの名無しさん (オッペケ Srf1-3aJ4)
垢版 |
2022/08/13(土) 08:14:45.82ID:qT9RB751r
xamarin用のクラスなんだけどPLCっていう共通部分のクラスとiOS,Android用のクラスがいる
これ使うときって各プラットフォームにそれぞれのDLLファイル入れて参照しとけば良いって感じなんかな?
2022/08/13(土) 09:36:31.24ID:dwJuX57c0
https://clown.cube-soft.jp/entry/20110419/cs_add_links

こんな方法で
537デフォルトの名無しさん (オッペケ Srf1-3aJ4)
垢版 |
2022/08/13(土) 09:59:42.33ID:qT9RB751r
>>536
ライブラリを作るよりもリンクのほうがいいんですかね?
2022/08/13(土) 10:01:15.56ID:X5MwWX870
可搬性悪くなるからやめたほうがいい
素直にライブラリプロジェクト作れ
539デフォルトの名無しさん (オッペケ Srf1-3aJ4)
垢版 |
2022/08/13(土) 10:09:16.92ID:qT9RB751r
Caseの中で作った変数を他のCaseで使ったりするにはどうすれば良いでしょうか?
今xamarinのドラッグ操作で最初にタップした位置を取得しドラッグ中に位置を取得したとき最初のタップした位置と現在のドラッグしてる位置を引くとタップした位置からの変化量が出ると言うようなプログラミングを組んでます
Switch
Case1 タップしたとき
A=タップしたときの位置
break
Case2 ドラッグしたとき
B=ドラッグした際の位置
C=A-B
break
としてます
A,B,C,の変数は別クラスでプロパティ化してます
540デフォルトの名無しさん (オッペケ Srf1-3aJ4)
垢版 |
2022/08/13(土) 10:12:52.95ID:qT9RB751r
>>538
とりあえずライブラリ化してみます
iOSやAndroidで必要なクラスは別でライブラリ名.iOSやライブラリ名.Androidで別で作って各プラットフォームにそのdllファイルを参照すれば良いですかね?
2022/08/13(土) 10:33:02.18ID:dwJuX57c0
リンクでやっといて困ったらライブラリ作れよ
バージョン毎の機能を管理できるならライブラリだけど
今の用途はリンクで十分なんだろ?
542デフォルトの名無しさん (オッペケ Srf1-3aJ4)
垢版 |
2022/08/13(土) 10:34:45.76ID:qT9RB751r
>>541
リンクでいいのか
2022/08/13(土) 10:40:28.03ID:dwJuX57c0
>>542
置かれてる状況次第
その環境でライブラリのバージョン管理をしない文化=常に最新をとってこいと言われるならリンクのがいいし
バージョンいくつはねーって仲間内で共有できる文化があるならライブラリにしなきゃあかんし

1人開発ではライブラリのメリットはほぼないね
544デフォルトの名無しさん (オッペケ Srf1-3aJ4)
垢版 |
2022/08/13(土) 10:43:05.34ID:qT9RB751r
>>543
個人開発は利点ないんですねサンクス
リンクにします
545デフォルトの名無しさん (ワッチョイ 8101-nxGK)
垢版 |
2022/08/13(土) 10:51:27.29ID:iS8x5SUl0
ソースファイルをリンクするってことは最新のソースコピペってことだろうか
ライブラリを修正したら参照してるプロジェクト全部ビルドする必要あるってことだよね…
546デフォルトの名無しさん (オッペケ Srf1-3aJ4)
垢版 |
2022/08/13(土) 10:55:12.82ID:qT9RB751r
ところでCase内の変数を呼び出すことってできるのでしょうか?
>>539
の方法でやると何故かタップしたときのAはCase1ではきちんと動くのですが
Case2内のAは0のままです
2022/08/13(土) 10:56:50.74ID:X5MwWX870
リンクでやるとパス変わっただけで使えなくなるからなぁ
絶対名前変えたり動かしたりしないってのなら大丈夫だろうけど
本当に個人開発でしか使えない
2022/08/13(土) 11:17:02.76ID:WN46//k40
質問の意図もイマイチ分からんしどんな実装しているのか分からんけど
過去の結果はどこかで保存してなきゃそりゃ参照できる訳無いよなw
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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