X



ふらっと C#,C♯,C#(初心者用) Part148
■ このスレッドは過去ログ倉庫に格納されています
0001ななC ◆jPpg5.obl6
垢版 |
2020/05/27(水) 10:14:39.92ID:wHIUQvvs
■前スレ
ふらっと 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
0354デフォルトの名無しさん
垢版 |
2020/06/30(火) 12:20:04.39ID:i/3g7BYw
うまい返しだな
0356デフォルトの名無しさん
垢版 |
2020/06/30(火) 13:04:47.10ID:NrFrJ9Y0
>>352
Pythonよりおっぱいがいいかな
0360デフォルトの名無しさん
垢版 |
2020/06/30(火) 21:15:20.63ID:i/3g7BYw
>>358
最近、大きくなって来ちゃいました
唐揚げとか食べ過ぎて
0361デフォルトの名無しさん
垢版 |
2020/07/01(水) 00:07:20.30ID:3IOwQk8y
>>360
C ++ C#ってほとんどDなんかな?
手に余るような手に負えないような良いサイズ感
最先端に触れちゃいたいけどFはイキ過ぎなんで
>>359はBBQしすぎでしょ
0363デフォルトの名無しさん
垢版 |
2020/07/02(木) 10:11:25.35ID:HaSFIuTi
質問なんですが、サーバーエクスプローラー−データ接続ー接続の追加で
ローカルのデーターベース新規作成したいのですが、データベースファイルのパスを
絶対パスじゃなくて、実行ファイルからの相対パスにできないのでしょうか?

データーソースはMicrosoft SQL Server データベース ファイル (SqlClient)です、よろしくおねがいします
0364デフォルトの名無しさん
垢版 |
2020/07/02(木) 16:39:20.61ID:P2k5coQc
接続の方を複数造る方が良いと思う
0365デフォルトの名無しさん
垢版 |
2020/07/02(木) 19:21:47.02ID:HaSFIuTi
>>364
レスさんくすです
接続を複数作るってのは、SQLiteとかでデータベース作って、SQLServerとかで接続とかでしょうか?
ごめんなさいよくわかりません
0366デフォルトの名無しさん
垢版 |
2020/07/02(木) 19:26:32.31ID:FYmRe4TQ
何をしたいんだ?
自分が考えた方法はいったんおいといて目的だけを言ってみて
0368デフォルトの名無しさん
垢版 |
2020/07/02(木) 19:45:01.25ID:yyWNrU1A
質問の前に真の目的があって
自分なりに考えた方法だとこうすればできる
でもそれには障害があるのでうまくいかない
んで質問するときには障害を取っ払うにはどうすればいいんですかって質問が化けちまうんだよ
だからまずは真の目的を話せ
0369デフォルトの名無しさん
垢版 |
2020/07/02(木) 19:53:24.61ID:0i6zzb7G
それだと本人のPCにしかないプログラムを公開するところから始めないといかんのだが
0371デフォルトの名無しさん
垢版 |
2020/07/02(木) 21:10:39.21ID:Ad2HRd1R
やりたいことを書いて頭に「C#」つけてグーグル先生に聞けばだいたい解決する
0373デフォルトの名無しさん
垢版 |
2020/07/02(木) 21:33:57.17ID:4sq19x0Q
翻訳すると、
ググれカス
0374デフォルトの名無しさん
垢版 |
2020/07/02(木) 22:29:07.87ID:HaSFIuTi
>>366
さんくすです
SQLを勉強したい→自炊した本のフォルダ名に本の名前書いてあるから
フォルダ名をデータベースに、サーバーエクスプローラーからデータベース作ると
C:\USER\ドキュメントフォルダに.mdfファイルが作られる、これを避けたいのです

>>367
れすさんくすです
もちろん実行パスさえ取得できれば絶対パスでもOKです
ただサーバーエクスプローラーからデータベース作ろうとしたら
Application.ExecutablePath使えなくて

>>368
そのアプリでしか使わないデーターベースの保存先を
実行ファイルと同じ場所にしたいのです、レスさんくすです
0375デフォルトの名無しさん
垢版 |
2020/07/02(木) 22:45:15.31ID:cWLbwDw4
>>374
死ねよ
0376デフォルトの名無しさん
垢版 |
2020/07/02(木) 23:07:05.68ID:R7WrWDDA
社員数分200台のコンピュータに共有フォルダに置いた常駐するexeファイルを実行させたいのですが、半分くらいが上手く起動してくれません
調べてもそういう情報は無いのですが、exeファイルの接続数等に何か制約があるのでしょうか?
0379デフォルトの名無しさん
垢版 |
2020/07/03(金) 04:37:08.56ID:ASRnm0+K
>>374
開発環境と実行環境は別ものと考えるのが常識だ
サーバーエクスプローラーが絶対パスの直指定しかできなくても
アプリケーションは相対パスから計算して接続文字列を組み立てられる
実行時にexeとmdfが揃ってればいい
開発時は別にどこにあってもいい
0381デフォルトの名無しさん
垢版 |
2020/07/03(金) 07:26:53.47ID:WuuXk3Fg
共有フォルダに同時アクセス制限が掛かってる可能性ない?
NASとかじゃなくてWindowsが共有元になってると
フォルダ右クリ→プロパティ→共有→詳細な共有で見られる同時に共有できるユーザー数がデフォルトは20になってるはず(ホストがWindowsServerだともっと大きいけど)
スレ違いだけどな
0382デフォルトの名無しさん
垢版 |
2020/07/03(金) 09:42:19.94ID:/M5CWcWs
>>379
開発時絶対パスでも、実行ファイルの場所に指定しとけば
うまく動くってことですね、ありがとうございます

>>378
さんくすです、アプリに同梱してれば見失わないってことですね
0383デフォルトの名無しさん
垢版 |
2020/07/03(金) 12:45:57.57ID:6268sYfp
>>368
ほんそれ
今まで何度も繰り返されてる
0384デフォルトの名無しさん
垢版 |
2020/07/03(金) 12:53:55.19ID:ovltho7f
言いたいことは分かるけど、それだと究極的には質問は「年収上げる早道は何か?」になっちゃうよw
0386デフォルトの名無しさん
垢版 |
2020/07/03(金) 13:50:51.57ID:BB9T+E2r
>>384
言いたいことを分かった上で敢えて茶々を入れるなら、もう少し面白いとか上手いとか思えるものにしてくれ。
0389378
垢版 |
2020/07/03(金) 14:19:46.52ID:hVBUXcHj
>>382
ブラウザなど、多くのアプリでは、

パッケージ内にデータベースとして、SQLite3 も入れていて、
それをキャッシュ用に使っている
0390デフォルトの名無しさん
垢版 |
2020/07/03(金) 14:26:16.82ID:d7ynYz1d
馬鹿が馬鹿に回答
0391デフォルトの名無しさん
垢版 |
2020/07/03(金) 14:26:33.28ID:RFZjc7Vw
>>387
ヘリウムガスをほんの少し。加減は分からないので絶対音感のある人に協力してもらって。
0392デフォルトの名無しさん
垢版 |
2020/07/03(金) 15:01:59.68ID:/+uSoVK/
>>391
胸軽く、心踊る、夏の夜の夢、メンデルスゾーン

好き 好き 大好き HT ML
あんなユメ こんなユメ かなえる
HTで探す MLで建てる
あなたと出会える HTML5ブィングゥ
0393デフォルトの名無しさん
垢版 |
2020/07/03(金) 15:49:52.93ID:/M5CWcWs
>>389
サンクスです、FireFoxとかみるとデータ保存用にSQLiteとか使ってますよね
単に実行ファイルと同じ場所にデータベースファイル保存したいだけなのに
そんなおかしいことゆってますかね?
0395デフォルトの名無しさん
垢版 |
2020/07/03(金) 20:14:17.82ID:+85BUcO3
>>393
Program Filesとかセキュリティが厳しいところにインストールして
DBファイルに上手く書き込めなくて悩むオチが見える
0396デフォルトの名無しさん
垢版 |
2020/07/04(土) 00:51:02.63ID:KIBH4SNT
【借金地獄】マルチ商法で死の淵から生還して得たもの失ったもの【ビジネス論】
https://www.youtube.com/watch?v=UxriU-TOrMY
【実体験】マルチ商法で友達を失うまで
https://www.youtube.com/watch?v=KFDnYlhxPg4
【体験談】元DDがAmwayで稼ぐのが難しい理由を解説してみた【元ガチ勢】
https://www.youtube.com/watch?v=SpzJEddQOdE
【ゲーム理論】マルチ商法が社会に存在してはいけない理由【脱洗脳動画】
https://www.youtube.com/watch?v=6vyrWhhpxf8
あの頃アムウェイはじめちゃったきっかけ【元ガチ勢】
https://www.youtube.com/watch?v=H9C4n4pL03U
【勧誘されてる人へ】マルチ商法をやってはいけない理由【完全論破】
https://www.youtube.com/watch?v=413ULvgJzkg
アムウェイで地味に成功してた僕が業界の裏側を暴露してみた
https://www.youtube.com/watch?v=98udsqJihkA
年間300万円稼げてたのにアムウェイをやめた理由
https://www.youtube.com/watch?v=-H_dBzeJeUM
私がネットワークビジネスを勧めない理由とは?
https://www.youtube.com/watch?v=hQNkcfhzv18
0399デフォルトの名無しさん
垢版 |
2020/07/04(土) 15:57:33.61ID:VcOMs9mw
VirtualStoreがなんとかしてくれるさ
0401デフォルトの名無しさん
垢版 |
2020/07/04(土) 16:40:27.72ID:o9siCoc7
Amazonで評判のいい本でC#の勉強をはじめたのですが変数のところで疑問点がでました

12 {
13 int a; // 変数の宣言
14 int b = 3; // 宣言と初期化を同時に行う
15 int add, sub; // 複数の変数を同時に宣言
16 double avg; // int以外の変数を宣言
17 a = 6; // 代入
18 add = a + b; // a,bの和を求める
19 sub = a - b; // a,bの差を求める
20 avg = (a + b) / 2.0; // a,bの平均値を求める
21 Console.WriteLine("{0} + {1} = {2}", a, b, add);
22 Console.WriteLine("{0} - {1} = {2}", a, b, sub);
23 Console.WriteLine("{0}と{1}の平均値{2}", a, b, avg);
24 }

変数の部分はわかるのですが、21-23の表示の部分が引っかかってます
なぜa, b, = a+bのように直接式を立てずに{0} + {1} = {2}に代入するのでしょうか?
0403デフォルトの名無しさん
垢版 |
2020/07/04(土) 16:47:32.86ID:LQtd/MI8
代入じゃないよ
後ろの引数の0番目、1番目、2番目をここに埋め込むって意味
a + " + " + b + " = " + "add";
現在のC#では直接埋め込めるから基本はそっち使うね
$"{a} + {b} = {add}"; // $""という記法で{式}を文字列に埋め込める
$"{a} + {b} = {a + b}"; // 式なので演算とかも書ける
0404デフォルトの名無しさん
垢版 |
2020/07/04(土) 16:48:09.31ID:Rckyb2WA
>>401
直接式を立てず、の意味が分からない
どう書くべきだと思ったのか、実際のコードを書いてみて
0405デフォルトの名無しさん
垢版 |
2020/07/04(土) 16:57:24.06ID:o9siCoc7
>>402
ありがとうございます
そういうことだったんですね

>>403
ありがとうございます
んーわかったつもりになりそうな予感w
じっくり読んでみますね


>>404
ありがとうございます
Console.WriteLine(a, "+" b, "=" a+b) 的な形をイメージしていました
0406◆QZaw55cn4c
垢版 |
2020/07/04(土) 17:13:23.19ID:LI34Q8oa
>>405
>Console.WriteLine(a, "+" b, "=" a+b) 的な形をイメージ
その書き方で十分だと思います
0409デフォルトの名無しさん
垢版 |
2020/07/04(土) 17:35:35.61ID:DNEaiqy3
403のが活かされてなくて草
ちな文字列内での変数展開やパラメータ指定でのバインドはPHPとかでもよくやるポピュラーな方法でもある
0410デフォルトの名無しさん
垢版 |
2020/07/04(土) 17:47:52.63ID:Rckyb2WA
>>403のように
Console.WriteLine( $"{a} + {b} = {a+b}" );
が一番スマートだと思う
後ろのはa+bでもaddでもお好みで
0411デフォルトの名無しさん
垢版 |
2020/07/04(土) 18:12:12.57ID:o9siCoc7
>>406
ありがとうございます
ふむふむ

>>407
ありがとうございます
そうなのですね

>>409
ありがとうございます
他言語との比較も勉強になりますね

>>410
ありがとうございます
わかりましたー
0412デフォルトの名無しさん
垢版 |
2020/07/04(土) 23:20:31.99ID:xyM4Xkey
あから
0413デフォルトの名無しさん
垢版 |
2020/07/05(日) 13:37:25.73ID:TRZuNrlV
濃淡グラフを描くときに使用するような
カラースケールを選択するコントロールはありますか
やはり自作するのでしょうか
0418デフォルトの名無しさん
垢版 |
2020/07/05(日) 14:17:51.15ID:NbYPgepr
基本的に自作するひとのスレ(板)だしな
0419デフォルトの名無しさん
垢版 |
2020/07/05(日) 22:06:45.89ID:nZcADY/x
カラースケールって何のことかと思ったらただのグラデーションのことかw
要するにグラデーションの両端の色を同時に選択できるようなダイアログって意味だったのかな?
0421デフォルトの名無しさん
垢版 |
2020/07/06(月) 09:56:41.78ID:7tB76G2d
WinFormsでデスクトップアプリを作っています
SoundPlayerクラスのPlayメソッドだと、
音が鳴っているときに別の音を鳴らすと前の音が止まって後の音が鳴るのですが、
前の音は止まらず、後の音が重なって鳴るようにしたいです(これが目的)
SoundPlayerクラスでは無理なら、何を使えば一番簡単にできますか?(これが知りたい)
可能なら音の鳴り終わりもイベントまたはコールバックで把握したいです
0424デフォルトの名無しさん
垢版 |
2020/07/06(月) 10:56:03.62ID:vjiPzzt6
一般論だけどWindowsの標準の色設定ダイアログは糞
全部の色を表現出来ていないからあるものの中からは選べない
0426デフォルトの名無しさん
垢版 |
2020/07/06(月) 11:17:03.52ID:vjiPzzt6
もちろん数値入れれば良い

>あるものの中からは選べない

>提示されているものの中からは選べない
(まだ誤解されるかも知れないけどパレットのことじゃなくてグラデーションの方の話ね)
0428デフォルトの名無しさん
垢版 |
2020/07/06(月) 12:03:37.45ID:VdflHSNv
>>427
そいつはカラーダイアログの使い方がわかってないのかもしれん
半透明色が取れない、って不満ならわかるけど>>426は何が言いたいのかすらわからん
0429デフォルトの名無しさん
垢版 |
2020/07/06(月) 12:06:34.59ID:HdfNJv1R
グラデのバーがあるのも知ってるよ
お前らには観えてないんだろ
0432デフォルトの名無しさん
垢版 |
2020/07/06(月) 14:25:56.67ID:7tB76G2d
>>422-423
ありがとうございます
423のMediaPlayerを使うことにしましたが、ちょっと癖がありますね
Waveファイル1つにつき1インスタンス生成して、
連続でOpenで読み込んでるとPlayもしてないのになぜか少し音が出たり
(Muteにしてから読み込むことで対処)、
ファイルのパスはUriで渡す必要があるのですが、exeからの相対パスを
渡しても読んでくれなかったり(絶対パスに変換すればOK)、
Playした後はStopしないと再度Playしても鳴らなかったり
ともかく目的は果たせました、助かりました
0433デフォルトの名無しさん
垢版 |
2020/07/06(月) 16:46:38.57ID:LuFD2ngK
>>426
馬鹿は死ね
0437デフォルトの名無しさん
垢版 |
2020/07/07(火) 13:20:00.91ID:1vFYTTqa
自分でColor選択ダイアログ造ってみ
Windows標準のやつのどこが問題かすぐ気付くからω
0439デフォルトの名無しさん
垢版 |
2020/07/07(火) 17:59:16.75ID:pZRFuct6
Windowsの色選択ダイアログっていうかそれをラップしてる.NETのダイアログを以前使って
なんじゃこりゃと思ったのは、あれ確かユーザーが編集して保存したパレットの色の型が
ColorになってなくてなんかWin32の妙ちくりんな型になってたような
0440デフォルトの名無しさん
垢版 |
2020/07/07(火) 18:18:45.06ID:sasngkCi
レジストリには文字列で記録されてます
.ini時代からの伝統です
0441デフォルトの名無しさん
垢版 |
2020/07/07(火) 19:16:59.66ID:auzHn+nI
>>439
妙ちくりんな型も何も、そのものずばりintだよ WindowsSDKではCOLORREFってtypedefされてるけど
知ってればColorTranslator.FromWin32で問題ないんだけどまあ知らないよね
0442デフォルトの名無しさん
垢版 |
2020/07/07(火) 21:35:27.91ID:i4DXid8X
Func<〜>型の変数同士の比較ってうまくいかないの?
Func<int, int> hoge = p => p * 2;
Func<int, int> fuga = p => p * 2;

bool flg = (hoge==fuga); //trueにならない
0444デフォルトの名無しさん
垢版 |
2020/07/07(火) 22:32:42.82ID:wq2UphxJ
ラムダ式を2個書いてるから、それぞれ別のオブジェクト
それを比較してるから同じではない

その比較はデリゲート同士の比較なんだが、もしかして整数同士の比較だと思ってる?
0445デフォルトの名無しさん
垢版 |
2020/07/07(火) 22:35:09.13ID:auzHn+nI
ラムダ式が同じ式でも別メソッドにコンパイルされてるからfalseになってる

int twice(int x) => x * 2;
Func<int, int> a = new Func<int, int>(twice);
Func<int, int> b = new Func<int, int>(twice);
var flg = a == b; // これなら同じメソッドだからtrue

Func<int, int> a = p => p * 2;
Func<int, int> b = p => p * 2;
はこんな感じになる
class __c {
public static readonly __c __instance = new __c();
public int __1(int p) => p * 2;
public int __2(int p) => p * 2;
}
Func<int, int> a = new Func<int, int>(__c.__instance.__1);
Func<int, int> b = new Func<int, int>(__c.__instance.__2);
var flg = a == b; // __1と__2で別メソッドなのでfalse
0446442
垢版 |
2020/07/08(水) 10:36:21.30ID:HlrvmqX5
>>443-445
レスありがとうございます。
計算式の同一性を判断したかったのですができないようなので他の方法で実装します。
0448デフォルトの名無しさん
垢版 |
2020/07/08(水) 11:29:13.34ID:hADFKHgu
定義域の数値を全部代入してみて出力が全部同じなら同じと見なす
0450デフォルトの名無しさん
垢版 |
2020/07/08(水) 12:03:35.90ID:hEQaHqpN
p => p * 2とq => q * 2は違うという判定でもよければ
ExpressionをToString()して比較
それ以上は中身を比較しないと無理

NugetのLambdaCompareを使うとp => p * 2とq => q * 2は同一と判断可能
https://dotnetfiddle.net/bTgYtj
(表現の同一性比較であって計算式の同一性比較ではない)
0452デフォルトの名無しさん
垢版 |
2020/07/08(水) 12:27:34.83ID:4Tv60rH2
小姑みたいな話と思われるかもしれないけど、同一と等価は厳密に区別した方がいいよw

同一というのは同一人物の同一。
等価というのはある判断基準に基づいて同じと見なせるということ。

前者には恣意性が入り込む余地がないのに対して、後者は恣意的な演算。
恣意的ということはつまり、計算機が適当に忖度して行える演算ではないということ。
何をもって等価と見なすかは人間が決定する必要がある。

デリゲートの==演算子は同一性を検査する
■ このスレッドは過去ログ倉庫に格納されています

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