20/02/19 17:29:40.75 edMDbkMkF.net
C#
3:デフォルトの名無しさん (ワッチョイ ff63-ufZq)
20/02/20 01:30:01 0E34SqOf0.net
ガチガイジとスルーもできないキッズには、ワッショイは何の効果もないと十分証明されたろ
4:デフォルトの名無しさん (ワッチョイ ff6a-Nz9x)
20/02/20 01:40:39 C2E41YSR0.net
>>3
全然されてない
ワッチョイなかったらもっと酷いことになってた可能性がある
5:デフォルトの名無しさん (ワッチョイ a3e7-KdKg)
20/02/20 02:48:48 xxzDxoBT0.net
ワッチョイでNGすれば良いし
6:デフォルトの名無しさん
20/02/20 03:04:29.36 M4vgGbqza.net
>>3
だから、その通りだけどそんなこと言っても「バカの壁」の向こう側には絶対通じないw
特に日本はそういう国ですってw
そんなこといい歳こいてたら毎日嫌というほど体験してるよね
ワッチョイは有害無益なだけだけど、害と言っても別にたいしたことないので
それでイラショナルな皆さまの気が済むなら目くじら立てることもないと思う。
愚かしいとはいつも思ってるけどwww
7:デフォルトの名無しさん (ラクッペ MM87-wHG4)
20/02/20 07:02:00 lwE/hX+lM.net
本当に証明された?
ワッチョイないと自演楽だからコロコロ変える奴いそうだが
8:デフォルトの名無しさん
20/02/20 07:23:34.72 W2AwCBod0.net
息をするように自演するやついるんだよな
プログラマというか技術職自体向いて無いからさっさと立ち去ってほしい
9:デフォルトの名無しさん
20/02/20 10:30:18.93 sbHTvmgoF.net
>>6
新型チュンコロ感染と一緒で常在化しててもただちに影響はありませんな
10:デフォルトの名無しさん (アウアウウー Sae7-icJa)
20/02/20 12:38:26 M4vgGbqza.net
言っても無駄だけど、普通の人は2chくんだり、特にこんな人口が少ない板の
人口が少ないスレで「自演」とやらをやりたいなんて動機を持ってない。
もちろんこの世は普通じゃない人もいる。
その普通じゃない人がワッチョイ付いてるぐらいで普通じゃない行為をギブアップするだろうか?
ありえなんじゃないの?
あんあの気が済むだけだよ。
だいたいそもそも他人の自作自演が気になること自体が普通じゃないよ悪いけど。
それ、何が問題なの?意味が分からないよ。
日本って地方の条例どころか国の法律がこういう目的や実効性を吟味せずに
感情論で制定される感情論の国なんだよね。韓国と100%同じ
11:デフォルトの名無しさん (ラクッペ MM87-wHG4)
20/02/20 12:40:53 lwE/hX+lM.net
ワッチョイのどこが有害なのか
なにもしなきゃ無害だろう
12:デフォルトの名無しさん
20/02/20 12:43:48.28 sbHTvmgoF.net
防衛する側としてはワッショイのおかげで見なくて済むから気が済むのは確か
13:デフォルトの名無しさん
20/02/20 13:22:03.09 mvd02NB50.net
家に鍵かけたって本気の泥棒はどこからでも入ってくる
だから鍵なんて無くすべきだって主張?
一部でも効果があり、他者にデメリットが無いならあっていいんじゃいの?
一部というのが例え1%だろうとあって困らないならあっていいじゃん
デメリットがあるなら効果のある範囲とデメリットの内容の天秤になるのはわかる
そしてその天秤具合は人それぞれなので議論しても答えは出ない宗教論争と一緒
14:デフォルトの名無しさん
20/02/20 14:26:02.37 0JvS6qsQ0.net
変な書き込みがあっても、普通は気にしなけりゃいいだけだろう
だけど統合失調症の人には、そういう書き込みが目に入るだけで発狂しちゃうんだろうな
ワッチョイは統合失調症の閲覧者のためにあるようなもん
15:デフォルトの名無しさん
20/02/20 14:37:30.03 ZbpWL9ae0.net
毎日IDでNGに放り込むか、週一でワッチョイでNGに放り込むかの違いしかないなw
16:デフォルトの名無しさん
20/02/20 15:19:48.73 IVVK5qcRa.net
道端に落ちてるゴミや犬の糞は見たくない。掃除するのが毎日なのか週一ですむのかなら、後者の方がありがたいというのは普通の感覚だと思うぞ。
17:デフォルトの名無しさん
20/02/20 15:20:24.08 mvd02NB50.net
ワッチョイって後ろ4文字は1週間でもかわんないんじゃなかった?
いつも後ろ4文字でNG入れてるわ
18:デフォルトの名無しさん (ワッチョイ ffb9-icXw)
20/02/20 15:36:09 jdtbGwr30.net
相談させてください。
System.Windows 名前空間の Thickness 構造体をキーとした
Dictionary のパフォーマンスが期待通りにならなかったので、
試しに new Thickness(0), new Thickness(1), new Thickness(2), ...
のハッシュコードを調べてみたところ、すべて 0 になっていました。
ひとまず以下のような EqualityComparer を定義して対応しているのですが、
もう少し真っ当な解決策がありましたらアドバイスをいただけないでしょうか。
class ThicknessEqualityComparer : IEqualityComparer<Thickness>
{
public bool Equals(Thickness tx, Thickness ty)
=> tx.Equals(ty);
public int GetHashCode(Thickness t)
=> (t.Left, t.Top, t.Right, t.Bottom).GetHashCode();
}
それから、もし Thickness 構造体のこの挙動が不具合だとすれば
フィードバックを行おうと思っているのですが、ご意見をいただけないでしょうか。
また実際にフィードバックを行う際は、送信先は IDE である Visual Studio の
メニューバーの「ヘルプ(H) → フィードバックを送信(F)」で適切でしょうか。
どうぞよろしくお願いいたします。
19:デフォルトの名無しさん (ワッチョイ 8f7c-kENX)
20/02/20 15:49:35 huOL9BGI0.net
URLリンク(referencesource.microsoft.com)
Left ^ Top ^ Right ^ Bottomだから全部同値なら0
手抜き実装ではあるが別に不具合というわけでもないな
20:デフォルトの名無しさん (ワッチョイ ffb9-icXw)
20/02/20 16:01:01 jdtbGwr30.net
>>19
ありがとうございます。
なるほど。。。メジャーなものでもこういう手抜き実装ってあるものなんですね。
不具合だと認められて直してもらえる雰囲気でもなさそうなら、
諦めて自前で EqualityComparer を作るしかないでしょうか。
ただこうなってくると、>>18 で使っている ValueTuple の
GetHashCode の実装も怪しく感じてしまうのですが、
もしそちらのソースコードもご存知でしたら教えていただけないでしょうか。
(貼り付けていただいた Reference Source では見つかりませんでした)
よろしくお願いいたします。
21:デフォルトの名無しさん (ワッチョイ 8f7c-kENX)
20/02/20 16:23:37 huOL9BGI0.net
URLリンク(github.com)
.NET CoreのソースだけどValueTupleなら.NET Frameworkでもそのまま持ってきてるんじゃないかな
22:デフォルトの名無しさん
20/02/20 17:21:18.55 Bpu8FWYY0.net
>>1スレたて乙
このスレの雑談厨
ワイーワ2 FFdf-IPX/ アウウィフ FFe7-IPX/
ワッチョイ ff63-ufZq
ワッチョイ ff6a-Nz9x
ワッチョイ a3e7-KdKg
アウアウウー Sae7-icJa
ラクッペ MM87-wHG4
ワッチョイ 83a7-FTwr
ワッチョイ 6388-qdXs
ワッチョイ cf2d-z3z/
ワッチョイ e333-YdYx
アウアウウー Sae7-xY2O
相談室で暴れている人
ブーイモ MMff-o/5i
NG推奨
23:デフォルトの名無しさん (ワッチョイ ffb9-icXw)
20/02/20 17:37:44 jdtbGwr30.net
>>21
たびたびありがとうございます。
確認したところ、示していただいた URL から確認できる
ValueTuple のハッシュコードは問題なさそうでした。
内容を簡単にご報告させていただきますと、
ValueTuple<T1, T2, ...> の GetHashCode は
System 名前空間の HashCode 構造体の静的メソッドである
int Combine<T1, T2, ...>(T1 value1, T2 value2, ...) を
呼び出しているようです。
int Combine<T1, T2, ...>(T1 value1, T2 value2, ...) メソッドの中身は、
まず hash 変数をシードが固定された乱数で初期化し、
value1, value2, ... それぞれのハッシュコードに
素数の掛け算、足し算、巡回ビットシフトを組み合わせた計算で hash を更新した後、
素数の掛け算と(巡回でない)ビットシフトを組み合わせた最終処理を施して
Combine されたハッシュコードを生成するという、かなり丁寧なものでした。
ちなみに .NET Core なら HashCode 構造体が直接使えるので、
少し文字数は増えますが
(t.Left, t.Top, t.Right, t.Bottom).GetHashCode()
ではなく
HashCode.Combine(
t.Left.GetHashCode(), t.Top.GetHashCode(),
t.Right.GetHashCode(), t.Bottom.GetHashCode()))
と書いたほうがコードの目的が分かりやすいかなと思いました。
それではこのあたりで失礼いたします。
ご親切にどうもありがとうございました。
24:デフォルトの名無しさん (アウアウエー Sadf-kvRF)
20/02/20 18:09:06 DIV2RvDKa.net
Hello!
って表示された…!
25:デフォルトの名無しさん
20/02/20 18:57:40.71 Pb7WanUc0.net
タプルに一括で関数適用する文法でもあるのかと思った
26:デフォルトの名無しさん
20/02/20 19:19:27.62 2rLj+nIZM.net
>>15
結構でかくね?
27:デフォルトの名無しさん
20/02/21 03:13:35.78 xBmtUMMla.net
石取りゲームできた…!
日記ですみません
28:デフォルトの名無しさん (ワイーワ2 FFdf-HF0o)
20/02/21 12:21:46 5cQWFY2cF.net
おめ
29:デフォルトの名無しさん (ラクッペペ MM7f-wHG4)
20/02/21 12:39:57 Z2lAagbxM.net
Twitterでやれ
30:デフォルトの名無しさん
20/02/21 15:08:34.18 4h0xZa5sH.net
matrixのライブラリ(C#版 & F#版)
URLリンク(x0000.net)
matrixのテンプレート ライブラリ(C++版)
URLリンク(x0000.net)
アルファ・ラボ|学術掲示板群
(理系 文系 工学 語学)
URLリンク(x0000.net)
31:デフォルトの名無しさん (ワッチョイ cf2d-z3z/)
20/02/22 15:57:17 7CwG8WAb0.net
各DIコンテナがやってくれる注入作業って、どういう仕組みで行われているの?
インターフェイスやらコンストラクタの引数やらをリフレクションで取ってきて、注入してるのかな?
32:デフォルトの名無しさん (ワッチョイ ff01-pEhb)
20/02/22 16:57:57 nfgptzfk0.net
>>31
基本的にはそう
型情報を取得してActivator.CreateInstance()みたいのでインスタンス生成して渡してる
33:デフォルトの名無しさん (ワッチョイ cf2d-z3z/)
20/02/22 18:39:28 7CwG8WAb0.net
>>32
ほんと、不思議で不思議でたまらなかったわ
ありがとう
34:デフォルトの名無しさん (ワッチョイ b317-Nz9x)
20/02/22 19:49:40 CYM04x9q0.net
OSSの中身確認するのが一番早いよ
入り口さえわかれば後の処理を追うのは簡単
35:デフォルトの名無しさん (ラクッペペ MM7f-wHG4)
20/02/23 00:10:20 wbGqawi7M.net
くだらねえ
36:デフォルトの名無しさん (ワッチョイ b35f-Nz9x)
20/02/23 11:37:03 h4Sd0hn50.net
すいません。名前の付け方で悩んでます
Wifiをアプリ全体のグローバルにしようとしているのですが、名前をどうつけたものか・・
program.csの中で
static class Program
{
/// <summary>
/// アプリケーションのメイン エントリ ポイントです。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
static public WifiControl WifiCtrl = new WifiControl();//テスト
static private long i=100;//テスト
}
こんな感じで宣言してみたのですがプログラム全体で使われるような変数ってどんなルールで名前つけますか?
このままWifiControlなんて名前でいいものか・・・
37:デフォルトの名無しさん (ワッチョイ b35f-Nz9x)
20/02/23 11:42:20 h4Sd0hn50.net
逆だった
WifiCtrl
でいいものか・・・
38:デフォルトの名無しさん
20/02/23 12:15:23.08 U1SoOOADa.net
WifiControlが自作クラスならそっちをSingletonにして WifiControl.Instance でアクセスできるようにすべき
class WifiControl {
private WifiControl() {}
private static WifiControl _instance = new WifiControl();
public static WifiControl Instance { get => _instance; }
}
WifiControlが改変不能ならstaticプロパティをクラス名と同名で Program.WifiControl にする
へんにクラス名とプロパティ名が不一致なのは良くない
あとProgramクラスよりもEnvとかConfigとかそういう別クラスを作ってそっちのプロパティとして持たせるほうが良い気も
39:デフォルトの名無しさん (アウアウウー Sae7-icJa)
20/02/23 15:06:59 GBgAuRZAa.net
>>36
名前が適切かどうかはそれだけの情報では誰も判断できないでしょうw
質問は変数のネーミングだけど、そもそも変数(フィールド)をそのまま公開するのは
普通は良くない作法だよね。
読み出し専用のプロパティーにした方がいいと思う。
シングルトンにする必要性は個人的には疑問
40:デフォルトの名無しさん (ワッチョイ 7f52-xY2O)
20/02/23 15:19:44 mVzZkmaX0.net
>>36
変数名を単体で悩むより、名前空間を適切に使えばいいのでは?
41:デフォルトの名無しさん
20/02/23 16:11:03.65 HGdGso/xM.net
シングルトンかっこいいじゃん
42:デフォルトの名無しさん
20/02/23 16:40:17.12 qRVHuH/p0.net
わかる
43:デフォルトの名無しさん
20/02/25 12:06:33.83 K+FIgRaj0.net
シングルトンって利点がよく分からない
それもうstatic classで良くない?って思うんだけど継承とかインターフェースのためだけにそうしないだけ?
44:デフォルトの名無しさん
20/02/25 13:15:34.49 FzVRg2bhF.net
static Struct
45:デフォルトの名無しさん
20/02/25 13:22:35.51 5IAL5cM20.net
singletonならインスタンス生成タイミングを制御できる利点がある
初期の立ち上げを極力軽くしたい時とか
そういうのあんま気にしなくていい環境ならstaticでもいいかと
46:デフォルトの名無しさん
20/02/25 13:30:56.90 rfLfmv0Z0.net
>>43
デバイスなどのアクセスでインスタンス2つ持ちが意味無いかバッティングするから1つにしたいとき?
ログ出力とか単一のファイル書き込み読み込み
DBアクセス(同時アクセス不可時)とかいいかな?
一応やっといてバッティング対策必要だったらやる感じで?
(まあ、だいたいライブラリ側でやってくれっけど)
47:デフォルトの名無しさん (ワッチョイ a324-D8OL)
20/02/25 14:03:18 K+FIgRaj0.net
>>45
static classだって静的コンストラクタで実質同じ事できるじゃん
_instance ?? (_instance = new Class())って形と実質同じだよね
まぁ継承使えないとか制約多いからってことなんだろうけど、staticおじさんアレルギーなのか知らないけど死んでもstaticは使わないって風潮もどうかと思う昨今
48:デフォルトの名無しさん (アウアウウー Sae7-icJa)
20/02/25 14:12:26 o7stKPona.net
ほとんどの場合ちょっと大げさ過ぎる感じなんだよねシングルトン。
唯一であることを保証するのにそこまで強制力が必要か疑問だし、
唯一であることを保証する責任を「その」クラス自身に負わせるのが本当に妥当かどうかも疑わしい。
ほとんどの場合、プログラムで唯一のものを共有したいなら、
共有オブジェクト取得用のstaticクラスを作る方が普通に素直な考え方に感じるよね。
必要論者はポカ防止のために強制力が必要って言うんだろうけど
それは問題のすり替えだと思うんだよね。
そんなポカが起こる状況自体が間違ってるよね。
もちろん絶対の強制力が必要なケースだってたぶんあるとは思うけど。
>>47
まあ少なくとも、一度staticクラスでシングルトン実装しちゃうと
今度はマルチにしたいと思っても簡単にできない問題はある。
だからstaticクラスでシングルトンも個人的にはちょっと気持ち悪く感じる
49:デフォルトの名無しさん (ドコグロ MM67-lfYl)
20/02/25 14:16:11 9IyrqwVFM.net
激しく同意
シングルトンを使う奴はほぼ例外なく「インスタンスを唯一に制限するため」を言い訳にして、その実はグローバル変数が欲しいだけ
実際にはインスタンスが一つでなければならないクラスなどほとんどない
一つしか作れないのではなく「アプリで一つしか必要ない」のであれば、>>48のようにstatic寄せ集めクラスを作るべき
50:デフォルトの名無しさん
20/02/25 14:33:00.25 oSeHo6cg0.net
>>47
>static classだって静的コンストラクタで実質同じ事できるじゃん
static classのコンストラクタがいつ実行されるかはコントロールできないよ
確実にlazy loadingしたい場合や
高価なリソースなので状況によっては解放したい場合とか
いろいろと使いどころある
逆にシングルトンは面倒くさいから
static classで間に合うユースケースならstatic使っとけばいい
51:デフォルトの名無しさん (ワンミングク MM9f-RsP6)
20/02/25 15:01:43 IPCihoyTM.net
おかしい…「モダン言語と現行ライブラリ下においてはシングルトンパターンを適用することは通常開発下ではまずないが」という大前提がまったく共有されていない…
もしかして10年前の感覚で脳内敵を殴りつけてスッキリ喋ってる…?
52:デフォルトの名無しさん (ワッチョイ ff63-ufZq)
20/02/25 15:04:06 9vKHdmbh0.net
テメエも皮肉ってればいいと思ってんなよガキ
53:デフォルトの名無しさん (ササクッテロ Sp07-4NuP)
20/02/25 15:27:35 1xtbBMnCp.net
死んでもstatic使わない、じゃなくて死んでもシングルトン使わない、の話になってるが
54:デフォルトの名無しさん (ワッチョイ 6388-qdXs)
20/02/25 17:25:56 5IAL5cM20.net
singletonがデザパタの中で意義も理解しやすく実装もそこそこ分かりやすく楽で有効に利用できると思わせる範囲が広いから無駄に広まってしまった
他により有効な手段ができても単一インスタンスだからsingletonで!っていう脳死とstaticは結局グローバルだからとにかく駄目!とかいうこれまた脳死が合わさってしぶとく使われているだけじゃない?
55:デフォルトの名無しさん (ワッチョイ 730c-Nz9x)
20/02/25 19:02:03 YCFpdAhz0.net
どこにstaticはとにくかくダメだなんて話が出てるのか
56:デフォルトの名無しさん
20/02/25 20:48:36.91 CjA4SEoV0.net
GoF初版は4半世紀前のJavaすら出る前だぜ
そろそろ新しい版を誰か書いて
57:デフォルトの名無しさん
20/02/25 21:46:44.65 rfLfmv0Z0.net
初めstaticで足りると思ったんだけど
対象のクラスに
継承やIFいんじゃんクソが
ってなるといつの間にかにシングルトンなってたりするだけだ
58:デフォルトの名無しさん
20/02/25 22:40:31.11 BegpSlwc0.net
>>57
これだよね。
staticクラスやグローバル変数でもいいんだけど呼び出し側に影響させないで実装を拡張できるという。
59:デフォルトの名無しさん
20/02/25 23:30:16.22 K+FIgRaj0.net
>>50
シングルトンが初回アクセス時に実行されるのと同様にstaticコンストラクタもそのクラスのいずれかに初回アクセス時に実行されるから同じ事だと思うよ
60:デフォルトの名無しさん
20/02/26 01:29:08.48 sMj0eedP0.net
>>59
初回アクセス時よりも前にロードされることが保証されてるのと
初回アクセスしたそのタイミングで実行されるのとは意味が違う
URLリンク(docs.microsoft.com)
仕様としては明記されてないが
static classを含むnamespaceがロードされるタイミングでstatic classもロードされてたはず
61:デフォルトの名無しさん (ワッチョイ 4e7c-FlcA)
20/02/26 10:56:30 /kjPVa9J0.net
型名の一部でしかないnamespaceのロードって何…?
62:デフォルトの名無しさん (ワッチョイ 8a01-k1AF)
20/02/26 11:28:50 sMj0eedP0.net
>>60
念の為試してみたら俺が間違ってたわ
すまん
static classでもLazy<T>使えば必要なタイミングまで確実に遅延できた
63:デフォルトの名無しさん
20/02/26 12:01:04.52 QHwYyYy1d.net
当たり前なんだけどsingletonでしか実現できない話じゃなくてsingletonなら自然にできる話だからね
singletonじゃなくたって実現方法はいくらでもある
こうすりゃできるなんてわかりきった上で話してるんだよ
64:デフォルトの名無しさん
20/02/26 12:04:17.00 xo5HgIYJ0.net
>>63
そのsingletonが有用な場面ってのを解説してくれ
65:デフォルトの名無しさん
20/02/26 12:08:38.94 QHwYyYy1d.net
>>64
環境的にstaticが使えないとか?C#じゃあんまないんじゃない?
組み込みC環境だとstatic不可とかあるよ
66:デフォルトの名無しさん
20/02/26 12:11:40.77 QHwYyYy1d.net
ところでsingletonが有用な場面ってどっから湧いた話?
過去レス確認したけど、俺そんなこと言ってなかったんだけど
67:デフォルトの名無しさん
20/02/26 12:16:01.74 91Y2xJrV0.net
>>60
メンバーの話じゃなくてコンストラクタね
static class Human
{
static Human(){} //←この部分は保証されてる
}
68:デフォルトの名無しさん (JP 0H82-SZE8)
20/02/26 14:16:45 oid0ZUpoH.net
ある強力なFor関数を紹介いたす(C#)
URLリンク(x0000.net)
アルファ・ラボ|学術掲示板群
(理系 文系 工学 語学)
URLリンク(x0000.net)
69:デフォルトの名無しさん
20/02/26 15:11:05.12 /kjPVa9J0.net
ただのAggregateでは?
70:デフォルトの名無しさん (アウアウウー Sa2f-A7eh)
20/02/26 17:52:39 FtoTEkgba.net
>>64
昨日>>48に書いた通り俺は唯一性に強制力を持たせる必要性については
懐疑的だけど、シングルトン的な発想が有用なケースは結構あるとは思う
例えばUIでいろんな場面で表示する必要があるサブ画面みたいなのがある時、
こんなことやってる人多いんじゃないかな
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private static Form2 Singleton { get; set; }
public static void ShowSingleton()
{
if (Singleton == null || Singleton.IsDisposed) Singleton = new Form2();
if (Singleton.WindowState == FormWindowState.Minimized)
Singleton.WindowState = FormWindowState.Normal;
Singleton.Show();
Singleton.BringToFront();
}
}
71:デフォルトの名無しさん (ワッチョイ ca42-DFeu)
20/02/26 18:15:26 uSMym8r00.net
>>70
それはシングルトンじゃねーよ
まずシングルトンはnewしない
72:デフォルトの名無しさん (ワッチョイ 03a7-efYq)
20/02/26 18:19:20 ZCj63VZA0.net
>>71
一回目は作るべ?
73:デフォルトの名無しさん (アウアウウー Sa2f-A7eh)
20/02/26 18:21:41 FtoTEkgba.net
>>71
揚げ足取りはいいけど、よく読んでからにして欲しいよね
74:デフォルトの名無しさん (ワッチョイ ca42-DFeu)
20/02/26 18:22:19 uSMym8r00.net
>>72
つか、インスタンスは自分自身の中にスタティックで用意する
そのクラスのスタティックプロパティー経由でインスタンスを参照するが
最初の参照時にシングルトンクラスで自身の中に生成する
だから外部で使うクラスはインスタンスを明示的に生成しません
75:デフォルトの名無しさん (ワッチョイ 4e7c-FlcA)
20/02/26 18:30:13 /kjPVa9J0.net
> インスタンスは自分自身の中にスタティックで用意する
private static Form2 Singleton { get; set; }
用意してるな
> 外部で使うクラスはインスタンスを明示的に生成しません
public static void ShowSingleton()
{
if (Singleton == null || Singleton.IsDisposed) Singleton = new Form2();
してないな
76:デフォルトの名無しさん (ドコグロ MM13-bE1b)
20/02/26 18:40:31 qN9Z1rJQM.net
>>62
それ実体が生成されないだけでLazy<T>自体はロードされるだろ
77:デフォルトの名無しさん (ワッチョイ 8a01-k1AF)
20/02/26 18:42:00 sMj0eedP0.net
シングルトンじゃなく
シングルトン的な発想が有用なケースって確かに書いてるね
78:デフォルトの名無しさん (ワッチョイ ca42-DFeu)
20/02/26 18:50:11 uSMym8r00.net
>>77
シングルトンの最大の特徴は、複数のクラスから一つのインスタンスを参照できることだから
それはシングルトン的なものでもない
>>75
シングルトンではSIngletonクラスの内部にたった一つのインスタンスがプライベートで格納されている
それをSingletonのスタティックメソッドやスタティックプロパティーで参照するのがGOFのデザパタだ
79:デフォルトの名無しさん
20/02/26 19:43:16.15 JBdLkQQ40.net
シングルトンって、昔は、複数インスタンスが作られる可能性を潰すためにやってたんだろうけどさ
今は、主にDIコンテナへの指示みたいなもんとして役立ってんじゃねえのか?
80:デフォルトの名無しさん
20/02/26 20:21:07.70 J/Z+GoCJM.net
DIコンテナ使ってるなら、DIコンテナが自動的にインスタンス化して単一のインスタンスを各所へ注入してくれるから、
GoFのシングルトンパターン(というかグローバルインスタンスアンチパターンとでも呼ぶべきもの)は全く必要ないよ
81:デフォルトの名無しさん
20/02/26 21:07:30.64 JBdLkQQ40.net
単一かどうかはコンテナへの突っ込み具合で違ってくるんじゃないの
シングルトンでって指定していなければ複数インスタンス化されちゃうでしょう
82:デフォルトの名無しさん
20/02/26 21:12:48.10 pSd33gsra.net
属性などで指定するだけだよ
83:デフォルトの名無しさん
20/02/27 08:46:08.57 LiuiNLxS0.net
>>77
グローバル変数を単にフォームにおいてアクセス制御しただけで次とほぼ変わらないな
staticでいいじゃん側の話に思える
private static Form2 _form;
public static Form2 Hoge{
get{
if(_form == null || _form.IsDisposed)_form ==new Form2();
return _form;
}
}
84:デフォルトの名無しさん
20/02/27 08:57:22.75 /W1ksVR5p.net
もうめんどくせえからstaticも中でシングルトン使ってるから
実質シングルトンパターンって事でいいよ
85:デフォルトの名無しさん
20/02/27 12:49:09.42 ENhVujQ1a.net
日本人はすぐそういう党派的(どっちの側にお前はつくんだ?}で幼稚な話になるよねw
>>83
そういう話じゃないってw
>>70のコードびShowSingletonというメソッドはもちろんForm2以外のクラスに
書くことも出来るけど、それが分かりやすいですか?
こういう話だから。
シングルトンがあんまり有用じゃないとしても、
「唯一のオブジェクトを管理したり窓口になったりする役割をそのクラス自身に持たせる」
というシングルトン的なアイデアは応用できる、と言ってるんだけど、
これがそんなに難しい話かなw
86:デフォルトの名無しさん (オッペケ Sr03-8X5p)
20/02/27 17:27:49 0jrc+WC1r.net
そのアイデアを実現する手法としてstaticはどうだって話してたんじゃないないのか
87:デフォルトの名無しさん (ドコグロ MM02-bE1b)
20/02/27 19:49:51 6N44UBOdM.net
>>85
日本人はーっていうのも相当アホっぽいけどなw
外人だってエディタとかLinux vs. BSDとか宗教戦争しまくり
てか中東の内戦なんてガチの宗教戦争だし
88:デフォルトの名無しさん (ワッチョイ 03a7-efYq)
20/02/27 20:14:51 NGAf+NLq0.net
うっかり2つ作らせない方法だからな
89:デフォルトの名無しさん (アウアウウー Sa2f-A7eh)
20/02/27 22:15:47 ENhVujQ1a.net
>>87
日本人と欧米人の論争の仕方の違いは明らかで、
それは別に俺のオリジナルの見解でも何でもないよw
今のこの話なら、日本人のダメなところは「シングルトンパターンの利点はここで問題点はここで」
という議論が苦手なこと。
日本人は一度決めた「立場」に固執して全肯定か全否定かになりやすい。
好き嫌いを持ち込むべきでない評価に好き嫌いを持ち込みがち。
エディターとかはいいんよ別に好き嫌いで語れば。技術的な話はおかしいでしょ。
板違いだからもう止めるけどね。
90:デフォルトの名無しさん (ワッチョイ ca01-bE1b)
20/02/27 22:46:12 RMeeA8fN0.net
>>89
> 今のこの話なら、日本人のダメなところは「シングルトンパターンの利点はここで問題点はここで」
> という議論が苦手なこと。
それでどちらかに決まるなら宗教戦争なんてすぐに解決してるよw
そもそも技術的な話とか言うわりには
> それが分かりやすいですか?
なんて人によって意見が違うことを言い出すから戦争はいつまで経っても終わらないわけで…
91:デフォルトの名無しさん (ワッチョイ 03a7-efYq)
20/02/27 23:52:28 NGAf+NLq0.net
>>89
まあ、外人ならってのは幻想だな
そもそも奴らがそんなに頭が良かったのならオブジェクト指向なんて流行ってない
リーナスが言ったようにオブジェクト指向はカルトだ
誰もメリットなんて説明できない
それでも海を超えて日本へ来たのさ
92:デフォルトの名無しさん
20/02/28 00:58:28.47 W4dF7kHwa.net
>>90-91
なんか党派的主張のお手本みたいなレスで何だかなあという気持ちになるけど
言っても無駄だねたぶんw
93:デフォルトの名無しさん (ワッチョイ ca01-bE1b)
20/02/28 06:43:53 lgmUZMDZ0.net
>>92
技術的なお話とか言う割には
> なんか党派的主張のお手本みたいなレスで何だかなあという気持ちになるけど
みたいなレスしかできない時点で…
94:デフォルトの名無しさん (ワッチョイ 4a63-ZWRU)
20/02/28 09:46:17 JX0D/Sej0.net
いつもいつも同じ流れでよく飽きないですねカスども
95:デフォルトの名無しさん
20/02/28 14:13:28.76 zv3KdV1x0.net
シングルトン的なものが必要になったら、殆どはDIのインジェクションでなんとかするけど
コレクションの要素にインジェクションなんて鬱陶しいから普通のシングルトンやStatic Class使ったりするな
96:デフォルトの名無しさん
20/02/28 16:17:34.85 5jfHvjE1d.net
シングルトンに依存するコレクションのエレメントとかちょっと悪夢だな。
97:デフォルトの名無しさん
20/03/01 05:50:05.37 wVHwYgLC0.net
これが最新ぽいな
98:デフォルトの名無しさん (ワッチョイ af17-DFeu)
20/03/01 07:54:47 cyJFDbBK0.net
42 デフォルトの名無しさん 2020/03/01(日) 05:43:23.78 ID:wVHwYgLC
なんだ?この糞スレ
と思ったら2016年だとwww
どこから引っ張り出したんだよ
99:デフォルトの名無しさん (ワッチョイ 679b-DFeu)
20/03/02 10:29:43 NX3+Q9hq0.net
C#というより.NET Framework全般の問題かもしれませんが・・・
ビルドした実行ファイルの拡張子を7zにして開けると
.rsrc(フォルダ)
.text
.reloc
というファイルが出てきます
このうち「.text」をエディタで開けると
「C:\Users\ユーザー名\source\repos\プロジェクト名\obj\Release\実行ファイル名.pdb」
の文字列がそのまま入っておりユーザー名まで見えてしまいます
プロジェクトのプロパティなど見てみましたが該当する文字列は設定されていませんでした
この文字列が入らないようにビルドするにはどうすれば良いでしょうか?
100:デフォルトの名無しさん (ワッチョイ 1bda-himO)
20/03/02 10:31:50 ++2P6Dav0.net
mtawmg
101:デフォルトの名無しさん
20/03/02 10:56:03.68 dv6bLfIQ0.net
プロジェクトのプロパティでデバッグ情報の出力を「なし」か「埋め込み」にする
なしの場合はデバッグが難しいから頒布する用のリリースビルドだけにした方が良い
102:デフォルトの名無しさん
20/03/02 11:01:21.30 glnmwhpKF.net
ググっただけですぐ出て来たが
URLリンク(www.atmarkit.co.jp)
URLリンク(var.blog.jp)
URLリンク(qiita.com)
103:デフォルトの名無しさん
20/03/02 11:30:46.56 NX3+Q9hq0.net
>>101-102
ありがとうございました。
pdbファイルがなんなのか理解できました
104:デフォルトの名無しさん
20/03/04 15:33:24.81 WNB6X6E30.net
yield returnの挙動について知りたいのですが、
例えばHuman[]からある苗字のHumanインスタンスだけを列挙する場合、
yield returnで貰えば新たな配列は生成されないという理解で良いんでしょうか?(無駄なヒープの生成なども無いと)
105:デフォルトの名無しさん
20/03/04 15:41:47.96 VYRn8ATr0.net
配列は生成されないけどIEnumerable<T>/IEnumerator<T>の実体クラスのインスタンスは作られるよ
具体的にどんなクラスになるかはildasm.exeとかで確認してみるといいよ
106:デフォルトの名無しさん (ワッチョイ ef4a-Xzyn)
20/03/04 20:59:26 i/lDlkx00.net
var a = new int[10];
for(......){
......
}
for(......){
var a = new int[10];
......
}
配列変数の場合はどちらの書き方が正しいでしょうか?
下のほうはループを繰り返す毎に配列を宣言してるので無駄だと思うのですが
107:デフォルトの名無しさん (ドコグロ MM4f-blPw)
20/03/04 21:02:11 O/qwuvY6M.net
>>106
意味が違うからどっちが正しいもクソもない
108:デフォルトの名無しさん (ワッチョイ efda-Lqe9)
20/03/04 21:03:35 nSjoZipw0.net
......の内容が大事だよなw
109:デフォルトの名無しさん (ワッチョイ 4b35-odL1)
20/03/04 21:18:09 vFPRvz7l0.net
>>106
どっちが正しいかは何をしたいかによる
110:デフォルトの名無しさん (ワッチョイ 4b2d-hds7)
20/03/04 22:58:57 Mg+OXMHj0.net
始めたばっかの頃の自分を思い出すと、おそらく>>106がやりたいのはこれ
int[10] a;
for(......){
a = new int[10];
......
}
111:デフォルトの名無しさん (ワッチョイ 8b63-UVo+)
20/03/04 23:03:21 w6hLhDKv0.net
全然違うと思う
112:デフォルトの名無しさん (ワッチョイ 9fad-b9E5)
20/03/05 02:53:17 FOFXma0P0.net
>>106
後者はループ処理毎にaが初期化されるが
前者はループ処理毎にaは初期化されない
って違いがあるので、バグが発生しにくいのは後者で
バグは発生しやすいけど効率がいいのが前者
前のループのaを使わないなら、どちらも正しいよ
113:デフォルトの名無しさん (ワッチョイ 8b48-107Z)
20/03/05 09:03:52 Zalo0Xqn0.net
for内部で毎回一時バッファが必要ならfor内に書くべきだけど、ループ枚に配列生成は高コストなのでstackalloc使って良いと思うけどな
unsafe for ()
{
var a = stackalloc int[10]; //配列サイズが[200000]ほど以上になるとスタックオーバーフローの恐れが出てくるので注意
a[0] = 123;
}
114:デフォルトの名無しさん (ワッチョイ 1bad-Ff7g)
20/03/05 09:55:29 C+Zq+iEs0.net
>>110
それ106と全く同じ事だよ
予め配列変数を用意しておいたところで参照型である配列の変数なんてあくまでポインタに過ぎず肝心の中身はnew毎に生成されるからコスト的には全く変わらない
115:デフォルトの名無しさん (ワッチョイ 9f01-AjW4)
20/03/05 10:13:49 sz7+iaAj0.net
言語ではなくて設計のことなのですが、C#でデスクトップアプリを作っていて、canvasに描画する処理を書いてます
そこで、描画部分で状態の更新(例えばlabelで表示する値の計算)を一緒にやった方が負荷が減らせるなと思ったのですがこれは設計としていいのでしょうか?
描画部分は複雑になっていくので、そこにcanvasの描画に関係ない処理を持ってくるのはどうなのかと悩んでます
でも一連の処理で共通部分があるので出来る限り負荷を減らしたいです
canvasの描画とその他の更新でうまく分けた方がいいでしょうか
116:デフォルトの名無しさん (アウアウウー Sa0f-blPw)
20/03/05 10:16:15 4EDBtik+a.net
>>113
悪いけど、それは全く意味ないと思うよ
ループ内で配列を生成する必要があるとしたら、それを他の非同期なメソッドなどに渡していて毎回インスタンスを別にしなければならないケースだろう
stackallocだと領域が結局使い回されてしまうから、それでいいんだったら単純に最初にnewした配列をループ内で毎回クリアして使えばよい
117:デフォルトの名無しさん (ドコグロ MM0f-blPw)
20/03/05 10:28:10 9nI/lMlHM.net
>>115
描画処理は今の状態のスナップショットを画面に反映させるだけなんだろ?
そんなもん状態の更新処理と何をどう共有するんだよ
分けるかどうかは別にして、そんな頭がごっちゃになった状態で書かれたコードなんて俺は読みたくないな
118:デフォルトの名無しさん
20/03/05 10:30:44.90 e30M4A2z0.net
>>116
ループ内で生成しないやり方と迷ってるってことはret時にもループ内でも他に渡す盤面は無いってことじゃないかな
なので最高のやり方はSpan<int> a = stackalloc int[10]として最初に確保をしてループ毎にa.Clear()
>>113のやり方も悪くは無いけど使いまわせるのに毎回stackallocするのは無駄
119:デフォルトの名無しさん
20/03/05 11:02:10.43 sz7+iaAj0.net
>>117
すみません誤解を招く書き方でした
状態の更新ではなくviewの更新です
viewで表示する値を計算するのに一連の処理が必要ということです
改めて考えてみたら元のデータは頻繁に変わるものではないのでメモ化で対処できそうです
120:デフォルトの名無しさん
20/03/05 15:17:30.80 X7H8oXB10.net
自分で使う用のWindows用WinFormsくらいしか作らない俺もSpan利用したいんだけど、そろそろ.NetCore3.1インスコしてええの?
CoreのWinFormsは不完全みたいな事どっかで聞いたからもうかれこれ1年以上.Net Framework4.7.2しか使ってないんだけど
121:デフォルトの名無しさん
20/03/06 12:20:46.76 H9scC1320.net
System.Memoryパッケージ入れれば、slow spanになるけど.NET FrameworkでもSpan<T>が使える
122:デフォルトの名無しさん
20/03/06 12:24:09.85 7SrrBNmuM.net
SpanならnugetからSystem.Memoryを入れればNET47でも使えるんじゃ?
123:デフォルトの名無しさん
20/03/06 12:24:46.59 7SrrBNmuM.net
あ、かぶった
124:デフォルトの名無しさん (ワッチョイ 4f7c-kMfZ)
20/03/10 13:54:33 Xb+4Rppb0.net
Hoge[] h = new Hoge[]{...};
ArraySegment<Hoge> slice_of_h = new ArraySegment<Hoge>(h, a, b);
Hoge[] new_instance = slice_of_h.ToArray();
125:デフォルトの名無しさん
20/03/11 20:14:38.79 Atur+UVNM.net
FormアプリケーションのGUIをそのままWebサイトにできますか?
126:デフォルトの名無しさん
20/03/11 20:15:50.74 JtvZFGdC0.net
無理
127:デフォルトの名無しさん (ワイーワ2 FFca-cUsN)
20/03/12 13:35:24 MzPDqAwNF.net
URLリンク(docs.microsoft.com)
128:デフォルトの名無しさん
20/03/12 14:08:08.81 jMpYX7Pla.net
>>127
懐かしい話だな
.NET Standard はあろうことか 2.1 で .NET Framework を切り捨てたから、もはや .NET Standard には何の意味もなくなり事実上消滅したよ
129:デフォルトの名無しさん (スップ Sd02-YgZJ)
20/03/12 14:19:52 GlTl0MmId.net
まだ消滅してないよ
130:デフォルトの名無しさん (ワッチョイ 51da-cUsN)
20/03/12 14:40:04 dkoVUBxw0.net
どれがホント?
URLリンク(blog.ecbeing.tech)
URLリンク(blog.hiros-dot.net)
131:デフォルトの名無しさん
20/03/12 15:00:48.26 jMpYX7Pla.net
>>130
下の方は誤解を招く書き方(というか本人が理解してなさそう)だね
.NET5は.NET CoreとXamarinの新バージョンを含むが、.NET Frameworkは含まない
.NET Frameworkは4.xが最後のバージョンとなり、(Xamarinを除けば).NET Coreへ一本化される
132:デフォルトの名無しさん
20/03/12 20:38:24.41 RlMroztpr.net
> Xamarin は、テクノロジー自体は、.NET Framework と C# を基盤としていますが、
> Mono というライブラリを使用します
133:デフォルトの名無しさん (ドコグロ MM4a-Syvm)
20/03/12 23:53:50 jAjbL2IrM.net
>>132
それは明確に間違いだね
Monoは元々MSとは無関係の会社による.NET Frameworkの非公式かつ独自な互換実装で、.NET Frameworkとはソースを共有していない
based on かなんかを誤訳したんじゃね
134:デフォルトの名無しさん (ワッチョイ 0135-0jaE)
20/03/13 00:04:41 1UhKFURs0.net
テクノロジーを基盤してるって書いてるだけじゃん
ライブラリがおかしい
135:デフォルトの名無しさん (スフッ Sda2-Wi6o)
20/03/13 07:54:41 /kxy81/Ad.net
>>133
今はだいぶ本家のを使ってるよ。Monoも。
本家がMITになったからね。
136:デフォルトの名無しさん (アウアウウー Sac5-cOBK)
20/03/13 12:12:59 1Ll5zbJna.net
毎度のことだけど用語の定義のあいまいさからくる混乱だろうね
>>132の引用部分を書いた人は「NET FrameworkをVS2002とかの時代の意味で使ってるんでしょ。
当時は仮想OSみたいに言われてた
その定義だと.NET Coreも.NET Frameworkになっちゃうので(以下略
137:デフォルトの名無しさん
20/03/14 03:14:07.89 +KBSM6L30.net
C#の正規表現についてですが...
new Regex(@"^a").IsMatch("abc",0) → true : 納得。
new Regex(@"^a").IsMatch("abc",1) → false : 納得。
new Regex(@"^b").IsMatch("abc",0) → false : 納得。
new Regex(@"^b").IsMatch("abc",1) → false : 納得...できん!!
第2引数が1なら、^で示す入力文字列の先頭が2文字目になってて欲しいじゃん!?
MSDNとか、この挙動について何か書いてある?見つけられなかったわ。
substringとかしたくないんだよな...
なんでこういう挙動になるか、ご存じの方いますか。
138:デフォルトの名無しさん
20/03/14 03:47:52.84 eoDNI2O30.net
こういう理由らしい
URLリンク(stackoverflow.com)
139:デフォルトの名無しさん
20/03/14 03:55:38.88 eoDNI2O30.net
第二引数は探索の開始位置を指定するのであって検索範囲をどうこうするためのもんじゃないってことかな?
でもその理屈だと二つ目がfalseである説明にならんし流し読みだから解釈間違ってるかもしれないわ
140:デフォルトの名無しさん
20/03/14 04:35:36.35 eoDNI2O30.net
139は間違いっぽいので忘れて
IsMatch("abc",0) → abcを探索
IsMatch("abc",1) → bcを探索
リンク先を見るに^は行頭を表すもんでbは行頭ではないのでfalse
aは探索外なので二つ目もfalseってことかな
URLリンク(docs.microsoft.com)
141:デフォルトの名無しさん (アウアウウー Sac5-M7Q/)
20/03/14 09:39:43 S+o/zRAGa.net
new Regex()するときにRegexOptions.Multilineを指定して『^』『$』の意味づけを変更・・・しても駄目そうだね
日本語のほうで
URLリンク(docs.microsoft.com)
を読んだけど、
あくまで『^』は入力文字列全体(>>137のなら"bc"ではなく"abc")の先頭、MultiLine指定時は\nを行区切りとした行頭についてのみマッチするんだろう
142:137 (ワッチョイ 61dd-gN7l)
20/03/14 11:29:21 +KBSM6L30.net
>>138-141
ありがとう!
俺だけではそれらの情報を見つけられなかったわ。
いったん \G を使用することで何とかなりました。
というか \G の仕様(影響範囲)もよくわからん。
最終のマッチってRegexのインスタンスに保存されるのかな?
そうだと思うけど、今一つ確証が持てない。
あと、 \A が正しいんじゃないか、って思いましたが、\Aは「文字列の先頭」でしかないんだね。
Singlelineの場合は^と同じみたい。
143:デフォルトの名無しさん (ワッチョイ c201-ThK6)
20/03/17 10:51:26 phFjovqc0.net
プログラムではなくライセンスについての質問なのですが、NAudioというライブラリを使いたくてプロジェクトに導入したのですがMs-PLライセンスとなっていて、この場合著作権表示等は具体的にどう表示すればいいのでしょうか。
著作権表示自体がいまいち分かりません。ライセンスの文書(LICENSE.txt等)とは別なのでしょうか。
調べているのですが具体的な表記方法が書かれている記事が無く分かりません。
ご教示お願いします。
144:デフォルトの名無しさん (ワッチョイ 13b9-hdmr)
20/03/21 13:43:45 /FH0o/RH0.net
相談させてください。
以下のような MyClass1 クラスを作ると、
「IDE0054 複合代入を使用」というメッセージが表示されます。
class MyClass1 {
int MyProperty { get; set; } = 0;
public void IncreaseMyProperty(int x)
=> MyProperty = MyProperty + x; // ここでメッセージ
}
まあそりゃそうでしょうということで以下の MyClass2 のように直すと、今度は
「IDE0052 C# プライベート プロパティ は、
その get アクセサーが呼び出されることがないため、メソッドに変換できます。」
というメッセージが表示されてしまいます。
class MyClass2 {
int MyProperty { get; set; } = 0; // ここでメッセージ
public void IncreaseMyProperty(int x)
=> MyProperty += x;
}
なんだそりゃと思いつつ言われたとおり以下の MyClass3 のように直せば
メッセージは表示されなくなるのですが、こんな直し方でいいのでしょうか。
class MyClass3 {
int _MyProperty = 0;
void SetMyProperty(int value) => _MyProperty = value;
public void IncreaseMyProperty(int x)
=> SetMyProperty(_MyProperty + x);
}
ご意見をお聞かせいただけると幸いです。よろしくお願いいたします。
145:デフォルトの名無しさん
20/03/21 18:45:34.77 qqrYKjlY0.net
MyPropertyが本当に自動実装プロパティなら
そもそもフィールドでいいんでは?
146:デフォルトの名無しさん (アウアウウー Sa5d-NT4g)
20/03/21 19:30:58 zN2aQcNta.net
最近のIDEは賢いから定義されてるけど使用されないことが明らかなプロパティやメソッドが見つかったら警告が出るようになってる
>>144のは文法等のお勉強でてきとうなソースを書いてるんだと思うけど、MyClass2なら
MyPropertyをpublicなプロパティにするか、MyPropertyを参照するような処理をちゃんと書けば警告解消するはず
ToString()あたりをオーバーライドして override string ToString() => MyProperty; とか書いてもいいかもね
147:デフォルトの名無しさん
20/03/21 20:37:06.12 /FH0o/RH0.net
>>145
レスありがとうございます。
説明が不十分で申し訳ありません。
実際には、以下の様な感じにしていまして、
できればプロパティを使いたいと考えております。
class MyClass4 {
int _MyProperty = 0;
event EventHandler MyPropertyChanged;
int MyProperty
{
get => _MyProperty;
set {
if (value != _MyProperty) {
_MyProperty = value;
MyPropertyChanged?.Invoke(
this, EventArgs.Empty);
}
}
}
public void IncreaseMyProperty(int x)
=> MyProperty += x;
}
148:デフォルトの名無しさん
20/03/21 20:37:42.93 /FH0o/RH0.net
>>146
レスありがとうございます。
おっしゃるとおりなのですが、MyProperty += x; で
MyProperty の get アクセサーが参照されていることに
ならないため困ってしまっています。
C# の文法的に、自動実装プロパティでなければ
int _MyProperty = 0;
int MyProperty { set => _MyProperty; }
のような書き方も許されているようなのですが、
MyClasss2 の MyProperty の定義をこのように書き換えると、
MyProperty += x;
のところでエラーが出てしまうのです。
149:デフォルトの名無しさん
20/03/21 20:45:29.55 rK+/4ZiL0.net
警告とエラーを混同しないで
+=オペレータがget使ってないだけでしょ
開発中で今後使う予定がありまだ未実装なら警告はスルーすればいい
150:デフォルトの名無しさん
20/03/21 21:05:47.28 zN2aQcNta.net
いやだからIDEからは「結局MyPropertyってインクリメントで更新はしてるけどどこからも参照されてないんでしょ、無駄なんじゃない?」と怒られてるわけで
他のC#ソースなりXAMLなりでMyPropertyが参照されてればそのメッセージは出ないはずだけど
例示されてるソースであればMyPropertyだけでなくインクリメントする処理も意味のない無駄な処理だから削ればいいし
GUI側etcのソースがまだ書けてないのであれば中途半端な書きかけソースで警告が出るのは当たり前のお話
というかそもそもでいえば、VisualStudioの設定がデフォルトならそのメッセージは
「コンパイルエラー」でも「警告」でもないただの注意喚起なメッセージでしかないから開発にも実行にも一切支障がないので
とりあえずほっとけばいいと思うんだけど
151:デフォルトの名無しさん (オッペケ Sr85-ED79)
20/03/22 09:23:59 knoRzRG7r.net
classをpublicにと言う話ではなく?
152:デフォルトの名無しさん (スッップ Sd33-Hfmd)
20/03/22 15:10:18 aFZi4Cdad.net
>>147
MyPropatyをSetメソッドにして、インクリメント_MyPropaty+xを渡せばいいんじゃないの?
これでいいんでしょうか?って内容通りだけど単に値を入れるだけならフィールド直接やればって感じだけど追加作業あるならメソッドでやるのは普通だと思う
153:デフォルトの名無しさん
20/03/24 22:53:25.92 7FKkbPj60.net
読んでる入門書の練習問題にアクセサのGetNameメソッドで八文字以下の文字列が渡された場合だけname変数に代入するプログラムを書きなさい
というのがあるんですが、どうやって書けばいいのでしょうか?文字数を判定するプログラムは習ってないので困ってます
154:デフォルトの名無しさん
20/03/24 22:59:57.52 0+ccCJA90.net
>>153
stringクラスのメンバーを見てみよう
155:デフォルトの名無しさん
20/03/24 23:01:03.36 Q5H6MOZK0.net
>>153
文字数を判定=String.Lengthで判定
URLリンク(docs.microsoft.com)
入門書ならその前の部分の内容で全部答えられるものしか無いはず。そうじゃないのならその入門書は捨てた方がいい
156:デフォルトの名無しさん
20/03/24 23:13:43.00 7FKkbPj60.net
>>155
ありがとうございます。とけました!
確かな力がつくC#超入門って本ですが見返してみても書いてないですね…
また良さげな本探してみます
157:デフォルトの名無しさん (ワッチョイ d1da-InxD)
20/03/24 23:41:48 lhWkdEvF0.net
「猫でもわかる」のほうが良いかも
158:デフォルトの名無しさん (ワッチョイ 29f1-dbH2)
20/03/24 23:51:16 hJYqJTPr0.net
猫に分かるわけがない、こんな難しいものを。
「ハゲでもわかる」だろ、どう考えても。
159:デフォルトの名無しさん
20/03/25 04:47:11.72 LvLtJ7JB0.net
猫は誰でもできるということを比喩的に表している
じゃあハゲは?
160:デフォルトの名無しさん (ワッチョイ b1f1-Go5d)
20/03/25 08:43:43 nn3rUaIL0.net
能力の劣る者でもできる
このハゲー、と言われるような者でも
161:デフォルトの名無しさん
20/03/25 09:09:57.70 IkumKzuJM.net
>>155
たまに「Stringのマニュアルを確認してどんなことができるか確認しておこう」みたいな初心者なめとんか的な項目があったりはする
たぶん説明するの面倒なのだと思う
162:デフォルトの名無しさん (ワッチョイ 5561-Cd0d)
20/03/25 10:06:03 tUU69eV70.net
>>153
てかなんでGetNameなんだ?SetNameじゃないの?
163:デフォルトの名無しさん
20/03/26 00:40:52.54 KtVIRudY0.net
>>162
主観の違いかと思ったけど、確かにセットですね
164:デフォルトの名無しさん
20/03/27 23:27:00.17 MpMbbGem0.net
プロポーショナル文字の場合に、画面上の文字の表示位置はどうやって求めるんでしょうか?
1文字ごとに(x,y)座標を計算して配列変数に記憶しておく、
文字を削除、挿入などして位置がずれたときにはすべて計算し直す
というような方法しか思いつきません
165:デフォルトの名無しさん (アウアウウー Sacd-PYaq)
20/03/28 00:41:06 PEyzMklSa.net
>>164
↓のサンプルコードみたいな話?やったことないから知らんけど
URLリンク(docs.microsoft.com)
166:デフォルトの名無しさん (ワッチョイ 764a-1K1t)
20/03/28 01:33:04 7wRTqyNf0.net
そんな感じです
毎度毎度文字列の長さを測定するのもなあ~と、ちょっと思ったもので質問しました
167:デフォルトの名無しさん (ワッチョイ 0935-lv27)
20/03/28 01:43:01 ngUeRIaE0.net
削除・挿入した文字列のサイズを全体から足し引きする
168:デフォルトの名無しさん
20/03/28 06:08:44.57 k+10ZvFP0.net
フォントは左右は良いけど上下に謎のスペースが入って扱いづらい。フォント毎に仕様が違うので厄介
169:デフォルトの名無しさん (エムゾネ FFb2-nBi6)
20/03/28 10:27:24 juOTiA3TF.net
オリンピックじゃないけどカーリング
170:デフォルトの名無しさん
20/03/28 11:24:58.10 +WXFsbEZ0.net
>>164
基本は再描画時に行頭から行末まで1文字つずつカウントアップ
171:デフォルトの名無しさん (ワッチョイ 92ad-B4Y8)
20/03/30 07:25:35 h/V/0o0/0.net
URLリンク(www.wisdomsoft.jp)
ここのコード1はなぜ8になるのでしょうか?
論理積の理屈はまあまあ分かったのですがビットがどうこうってのが分からないのですが
172:デフォルトの名無しさん (ワッチョイ b5da-3LRk)
20/03/30 07:29:34 6/Nsoznj0.net
両方たっているのが1000bだから
173:デフォルトの名無しさん (ワッチョイ 5ef2-Bt6E)
20/03/30 07:32:55 X05REbKS0.net
>>171
2進数を理解したらわかるよ
174:デフォルトの名無しさん
20/03/30 07:45:18.96 h/V/0o0/0.net
>>173
0cと0aを2進数に直してもなぜそうなるのかわからないのですが…
沼に嵌りそうだから後回しにしたほうがいいかな・・
175:デフォルトの名無しさん
20/03/30 07:56:54.43 yPZuudvza.net
>>174
正しく2進数にできてないんじゃないか?いくつになると思ってる?
176:デフォルトの名無しさん
20/03/30 08:01:46.25 h/V/0o0/0.net
>>175
1010と1100と思います
それで論理積で評価してtrueが帰ってくるとなぜ13になるのかわからないです
177:デフォルトの名無しさん
20/03/30 08:04:27.51 aCqibAU/0.net
図2に書いてあるのが全てだが
8という数字ではなく結果が2^3と考える
各ビットについて
「ビットnが1同士=結果は1」を繰り返して全部の桁を足す
この場合ANDの結果が1なるのは4ビット目だけなので
2^3 x 1
+
2^2 x 0
+
2^1 x 0
+
2^0 x 0
の結果が8だ
178:デフォルトの名無しさん
20/03/30 08:13:24.87 h/V/0o0/0.net
>>177
かなり噛み砕いて説明ありがとうございます
・・・でもわからない;;^は排他的論理積の記号ですか?
2進数とビットをもっと勉強して出直してきます
179:デフォルトの名無しさん
20/03/30 08:22:46.27 aCqibAU/0.net
あ、C#には累乗演算子ないか
2^3は「2の3乗」の意味です
Math.Pow(2, 3);
180:デフォルトの名無しさん
20/03/30 08:23:27.68 h/V/0o0/0.net
>>177
ごめんなさい、理解できました
長々と付き合っていただきありがとうございました
181:デフォルトの名無しさん
20/03/30 22:26:07.20 fWO3XlZL0.net
ほっこりした
182:デフォルトの名無しさん
20/03/31 05:00:18.54 8jxewuXM0.net
◯っこりした
183:デフォルトの名無しさん
20/03/31 12:53:35.20 fWUbK/Ahd.net
マッコリした
184:デフォルトの名無しさん (ワッチョイ 6924-0ih2)
20/03/31 14:59:25 zOJyTQkJ0.net
どうでもいいんだけど二乗でわざわざMath.Powを使う人の狙いって何?
普通にx*xで良いじゃん
185:デフォルトの名無しさん (アウウィフ FFcd-MKsy)
20/03/31 15:02:22 uDSFrRRVF.net
i x i
186:デフォルトの名無しさん (ワッチョイ 5561-Cd0d)
20/03/31 15:05:29 iZe8wtQ40.net
累乗であることを明確にできるんでMath.Powのほうがいいような気がするなあ。
187:デフォルトの名無しさん (ワッチョイ 45ac-tCKN)
20/04/01 00:45:48 7LP+CGQA0.net
>>185
かわいくてほっこりするからアリ
188:デフォルトの名無しさん
20/04/01 03:52:03.60 lVwFrbjs0.net
あえてこじつけるなら仕様書通りの表現ができること
2乗の値をってなってるのが3乗の値に仕様変更された時差分で2が3に変わってる方がわかりやすい
189:デフォルトの名無しさん
20/04/01 07:47:41.17 MqGhAKfu0.net
>>184
同じこと繰り返したくない。
変数名がクソ長くてよく似た名前のが存在してたらMathPowの方が安心できる。その程度だぜ。速度的なことは知らんけど。
190:デフォルトの名無しさん
20/04/01 09:27:50.48 jWoZ64tYM.net
実数ならMath.Pow使うけど整数ならx * xにするな
191:デフォルトの名無しさん
20/04/01 10:40:40.89 Z3CDkAvT0.net
double x = p1.X - p2.X, y = p1.Y - p2.Y;
var dist2 = x * x + y * y;
var dist2 = Pow(p1.X - p2.X, 2) + Pow(p1.Y - p2.Y, 2);
結論:べき乗演算子欲しい
192:デフォルトの名無しさん
20/04/01 11:03:28.91 5VJq6KKKF.net
var Dist2 = Func<double, double, double> (dx, dy)=> {return dx*dx+dy*dy;};
var dist2 = Dist2(p1.X - p2.X, p1.Y - p2.Y);
あほだな
var Dist2 = Func<Point, Point, double> (p1, p2)=> {return Pow(p1.X - p2.X, 2) + Pow(p1.Y - p2.Y, 2);};
var dist2 = Dist2(p1, p2);
いまいちだな
193:デフォルトの名無しさん
20/04/01 17:09:27.69 9jyTppa90.net
Point型にDistanceメソッドつけといてくれたらええのになあ
194:デフォルトの名無しさん
20/04/01 17:11:21.84 0oGZrVNR0.net
点に距離なんて無いだろうに
195:デフォルトの名無しさん (ワッチョイ 851d-6nIr)
20/04/01 18:49:00 60SS71wY0.net
YouTuberは「最強の職業」である理由。
URLリンク(www.youtube.com)
【事例付き】YouTuberは最強の副業である件について。
URLリンク(www.youtube.com)
【初心者向け】YouTubeの始め方・稼ぎ方を徹底解説!
URLリンク(www.youtube.com)
「YouTubeなんていつか稼げなくなる」という主張を論破する。
URLリンク(www.youtube.com)
収益化から丸1年!YouTubeでいくら稼いだか公開。
URLリンク(www.youtube.com)
その動画で月商○○万!? YouTubeで稼ぐ裏技的アプローチ。
URLリンク(www.youtube.com)
【貧者の工夫で戦え】ガラケーだっていい。YouTube始めるのにパソコンはいらない!
URLリンク(www.youtube.com)
【第一回】SNS、YouTube、ブログで稼ぐ方法を、丁寧に解説します!
URLリンク(www.youtube.com)
196:デフォルトの名無しさん (ワイーワ2 FF93-Wy2p)
20/04/01 18:53:16 86v82W0VF.net
System.Drawing Point Distance なし
System.Windows Point Distance なし
Xamarin.Forms Point Distance あり!!!
197:デフォルトの名無しさん
20/04/01 19:50:46.55 ULM1+KSpa.net
描画面上の距離が必要になるケースってあんまりないような気はするね。
直交座標上の点を表すstructがあってそっちに付いてるなら分からんでもない。
.NETのライブラリって数学の名前空間がないんだよな。
MathってSystem直下のstaticクラスになってて、今となっては疑問を感じる設計だよね
198:デフォルトの名無しさん
20/04/01 19:51:14.57 o39i6dw+0.net
DistanceよりsqrMagnitudeの方が多用する
199:デフォルトの名無しさん
20/04/01 20:15:30.50 2fyvFTga0.net
割と知名度の低いSystem.Numerics
200:デフォルトの名無しさん
20/04/02 06:04:40.26 OVS0fpTc0.net
System.Numericsってなんだと思ってググったら、存在知らずにだいぶ前にこれと似たようなの(しかも劣化コピー)自作したぞ。
今ひどい黒歴史が出来たわ・・・・・
201:193
20/04/02 06:58:15.83 JxZO1Jli0.net
>>196
あるのかぁぁぁぁ!!!!!!
Xamarinてことはスマホアプリか。UI関係で使うんかな?
202:デフォルトの名無しさん (ドコグロ MMe1-qghl)
20/04/03 09:37:19 cBUAwFsBM.net
XamarinがMSに買収される前からあるんだろ?
零細企業のアホ社員がまともなコードレビューも受けないままリリースしちゃったんだろうな
203:デフォルトの名無しさん (ワッチョイ 8dda-fwpz)
20/04/03 09:38:38 lfI6G99C0.net
人脈が無いと使えないって言ってるでしょうに
204:デフォルトの名無しさん (エムゾネ FF43-8H9x)
20/04/03 14:53:19 VVxcL9MvF.net
ちょまどさんがきっとなんとかしてくれる
205:デフォルトの名無しさん (ワッチョイ 4d61-sbZV)
20/04/03 17:02:10 UoNKEVCn0.net
WinForms で、MDI の場合、子フォームのメニューは親フォームにマージされるようですが、この動作を変更して、マージせずに子フォームのメニューバーの位置に直接メニューを表示することは可能でしょうか?
可能な場合、どうすればできますか?
206:デフォルトの名無しさん (ワッチョイ 4b7b-Teqc)
20/04/03 17:11:49 blY/nayW0.net
>>205
URLリンク(dobon.net)
207:デフォルトの名無しさん (ワッチョイ 0533-tDlu)
20/04/03 17:26:05 j3QBAl3N0.net
>>205
子フォームのそれぞれにメニューバーが欲しいってこと?
すごく邪魔そうだけど…
208:デフォルトの名無しさん (エムゾネ FF43-8H9x)
20/04/03 17:44:55 VVxcL9MvF.net
>>205
SDI
209:デフォルトの名無しさん
20/04/03 18:00:55.95 UoNKEVCn0.net
>>207
そうです。
子フォームも親フォームと同様にタイトルバーの下に独自のメニューバーを持たせたい場合の話です。
210:デフォルトの名無しさん
20/04/03 18:01:25.86 UoNKEVCn0.net
>>208
SDIではなく、複数の子ウィンドウを作りたいのです。
211:デフォルトの名無しさん (ワッチョイ 8dda-fwpz)
20/04/03 18:17:58 lfI6G99C0.net
SetParentで養子に出してしまえ
212:デフォルトの名無しさん (ワッチョイ 4d61-sbZV)
20/04/03 18:25:08 UoNKEVCn0.net
>>206
読んだんですが、該当する箇所は無いようです。
有れば教えてください。
213:デフォルトの名無しさん (アウアウウー Sae9-1s42)
20/04/03 18:30:10 ytDWP9uSa.net
>>209
親のMenuStripのAllowMerge = falseだね
デフォでマージされないはずだと思ってたけど勘違いだった
214:デフォルトの名無しさん (ワッチョイ 4d61-sbZV)
20/04/03 18:40:10 UoNKEVCn0.net
>>213
親Formの AllowMerge を falseにするということは、どんなMDIに対しても
影響が及ぼされてしまうんですね。
一部のMDI Chileだけは個別にメニュー付きで、他のMDI Childは、親のメニューにMerge、という具合には出来ないんですか。
215:デフォルトの名無しさん (エムゾネ FF43-8H9x)
20/04/03 18:46:29 VVxcL9MvF.net
そこまでこだわるなら floating menu 造って子ウィンドウに載せろ
216:デフォルトの名無しさん (アウアウウー Sae9-1s42)
20/04/03 18:51:31 ytDWP9uSa.net
>>214
そういうヘンテコなUIはどうかと思うけど、
マージしたくない子のMenuStripのAllowMerge = falseでいけるみたい
っていうかこれぐらい自分で試そうよw
217:デフォルトの名無しさん (ワッチョイ 4d61-sbZV)
20/04/03 19:07:26 UoNKEVCn0.net
>>211
MDI Child Frame(?)の子として中に別の Window を入れるのでしょうか?
218:デフォルトの名無しさん
20/04/04 00:11:51.82 8ZllyE370.net
いくら初心者向けのスレッドっても少しは自分で試してみなよ
219:デフォルトの名無しさん
20/04/04 12:59:15.20 PIJg3gqB0.net
コードを変更しても反映されない
いきなり原因不明のエラーが出ると思ったら
Form1.Designer.csの中で勝手にプロパティ初期化してた
220:デフォルトの名無しさん
20/04/04 17:22:20.79 9nDXuupl0.net
VS2019のメニューを見ていると、MFCと同様に、無効な項目は
グレイ表示されています。
MFCの場合は、Merge方式ではない代わりに、ActiveなChildWndが
ハンドラを実装していない場合には自動的にグレイ表示になっていたのですが、
WinFormsの場合は、どうやれば良いのでしょうか?
221:デフォルトの名無しさん (アウアウウー Sae9-1s42)
20/04/04 19:04:00 UFbKis4ca.net
>>220
1年前にも似たような質問があった気が。
MFCは知らないのであれだけど、多分MFCに近いやり方は用意されてないかと。
結果的に同じようなUIをなるべく簡単に実現するには、1年前にも書いたけど
MDI子に共通のメニューを持つFormをまず作って、
個々のMDI子はそれを継承するのがいいんじゃないかなあと
222:デフォルトの名無しさん (ワッチョイ 2361-sbZV)
20/04/04 19:30:33 C11LX2Y60.net
>>221
それで、ハンドラを実装したくない継承クラスでは、その項目を disable にするという
わけですか。
223:デフォルトの名無しさん
20/04/04 19:59:31.83 UFbKis4ca.net
そうそう。
継承後のフォームでもデザイナでコントロールのプロパティーの値を変更というか上書きできたはず
ついでに、MenuStripのVisible = falseにしておけば親にマージされている時以外メニューは表示されないみたい
224:デフォルトの名無しさん
20/04/06 03:12:51.01 O7BKGhOT0.net
ビル・ゲイツが私財でコロナのワクチン作る。
c# プログラマに一番最初にワクチンを供給してくれるとおもう。
安全性の確認できないワクチンや薬品をc#プログラマにぶち込めば開発効率が上がる。
人体実験を断ったら、msdn、マイクロソフトid を停止させるとかして、Windows 利用不可にすればいい。
c#コンピューターオタクは断ると当面お金を稼げなくなるから喜んで実験に参加してもらえるはず。
まと、コンピューターオタクには人権はないので、実験により貴重な人命が損なわれることもない。
225:デフォルトの名無しさん
20/04/06 07:14:18.13 GDVBsc7B0.net
MSが作るワクチンなんてバグだらけになってそうでこわひ
226:デフォルトの名無しさん
20/04/06 08:02:15.03 m5eAFRE+M.net
ワロタ
227:デフォルトの名無しさん (ワッチョイ e501-fwpz)
20/04/06 09:39:40 78vqHF1U0.net
弱毒化ミスりました。てへ
228:デフォルトの名無しさん (ワッチョイ 2310-CuPJ)
20/04/06 09:46:00 xLTmiL/Q0.net
そんなミスされたらゲイツの顔がブルースクリーンになっちゃう
229:デフォルトの名無しさん
20/04/06 10:17:13.45 TxMJ3ToxF.net
>>224
先生そういう宗教的な分野はMacとかSwiftとかの方が適していると思います
230:デフォルトの名無しさん
20/04/06 11:37:10.89 O7BKGhOT0.net
>>225
c# プログラマにベータ版ワクチンをインストールしてもらいデバッグするんですよ。
バグのないワクチンとソフトウェアはありません。
Macユーザーは完成後のワクチンは提供対象外。
だから、MacBook とかに Windows をインストールしてる人は、デバッグと実験の対象になりますが、完成したワクチンの提供は対象外となります。
231:デフォルトの名無しさん (ワッチョイ b501-bVUD)
20/04/07 17:59:28 Fz3MtvZy0.net
visualstudioで
フォームアプリに追加したクラスライブラリにclass1.csとclass2,csがあるんですけど
class2の方にコントロールを継承してもツールボックスに表示されないのはなぜでしょうか
class1だと表示されました
232:デフォルトの名無しさん (ワッチョイ 55b0-CuPJ)
20/04/07 18:09:18 haJ3Gg0r0.net
GoogleドライブにファイルをアップをしたくてGoogleの下のサンプルを
参考に動かしてみたのですが、全くアップできず何が悪いのかさっぱりです・・・
URLリンク(developers.google.com)
URLリンク(developers.google.com)
以下がコードです。
URLリンク(dotnetfiddle.net)
ファイルのリストは、取得できているので認証はできていると思うのですが
「var file = request.ResponseBody」の行で、fileがnullとなっており
次の行でエラーが発生しています。
どなかたお助けください。よろしくお願いいたします。
233:デフォルトの名無しさん (ワッチョイ 4b7b-Teqc)
20/04/07 18:10:40 Zxvg5mpZ0.net
>>231
追加部分をビルドしてもツールボックスに表示されないのなら該当するVSのスレで聞いてくれ
234:デフォルトの名無しさん (ワッチョイ b501-bVUD)
20/04/07 18:23:44 Fz3MtvZy0.net
>>233
VSスレ行ってきます
235:デフォルトの名無しさん
20/04/07 18:42:39.03 G5F9VLMpF.net
>>232
var driveService = new DriveService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "MyApplicationName",
});
使ってない?
236:デフォルトの名無しさん
20/04/07 18:55:57.94 G5F9VLMpF.net
あとは
var fileMetadata = new Google.Apis.Drive.v3.Data.File(){
Name="test.png",MimeType="image/png",};
にしてみるとか
他にはstreamがbinaryになってるかどうかとか
URLリンク(gist.github.com)
この人もnullって言ってるな
237:デフォルトの名無しさん
20/04/07 18:58:19.21 G5F9VLMpF.net
さすがstackoverflow
URLリンク(stackoverflow.com)
238:デフォルトの名無しさん
20/04/07 19:00:30.98 G5F9VLMpF.net
っていうか
DriveService.Scope.DriveReadonly
じゃだめな気がする
239:デフォルトの名無しさん
20/04/07 19:02:03.78 haJ3Gg0r0.net
>>235
すみません。そこ使っていません。コメントアウトしました。
51行目でDriveServiceを宣言しているので、そこでの宣言は不要でした。
240:デフォルトの名無しさん
20/04/07 19:42:25.67 haJ3Gg0r0.net
>>237
>>238
出来ました!ありがとうございます!!
なるほど!一度作ったjson消さないと駄目なんですね。
本当にありがとうございました!!
241:デフォルトの名無しさん (ワッチョイ df01-aZ/i)
20/04/08 18:42:37 4ZoNAvx+0.net
バルクコピーはdatatableだけに対応なのでしょうか?
ググってもジェネリックで使う記事が見当たらないので無理なのかなという気がしていますが
242:デフォルトの名無しさん (ワッチョイ 622c-N9MB)
20/04/08 21:01:32 SnWF1IxV0.net
SqlBulkCopyの話ならWriteToServerのオーバーロード見る限り
IDataReader頑張って実装すれば何とかなりそう
243:デフォルトの名無しさん (ワッチョイ 06e3-AglQ)
20/04/08 22:55:22 t+YdRhnM0.net
ググればToDataReaderの拡張メソッドヒットするからそれ参考に実装すればいいんじゃね
俺社環でライブラリの拡張メソッド禁止されているから、IDataReaderで作ったけど
244:デフォルトの名無しさん
20/04/09 07:09:54.80 9rfBAHbp0.net
>>243
知らない知識なので参考にさせて頂きます
しかしバルクコピーのメソッドがdatatableという古い技術で実装させる時点で、そもそもバルクコピー自体が古い技術で別の最新技術があるのかなと疑っております
色々な角度で調べてみるつもりです
245:デフォルトの名無しさん
20/04/09 07:57:03.98 WaI3ZH+Vr.net
datatableってもう古いの?
246:デフォルトの名無しさん
20/04/09 08:44:51.87 lA8JDzIo0.net
win10において
・ネットワークとインターネット設定→プロキシのセットアップスクリプトを使う設定のON/OFF切り替え
・ネットワーク接続のインターネットプロトコルバージョン4のプロパティの
IPアドレスを自動的に取得すると、次のIPアドレスを使うの切り替えと入力
DNSサーバー・・・と次のDNSサーバーのアドレスを使うの切り替えと入力
これをC#アプリで実現できますか?どのようなクラスを使えばいいでしょうか?
247:デフォルトの名無しさん
20/04/09 09:25:00.65 x5VgstST0.net
レジストリいじれば設定変更できるやつだろ
ようはwin32だろ、それくらいまでは調べたよな?
248:デフォルトの名無しさん
20/04/09 10:21:54.03 uYq8FGtT0.net
IPアドレスの変更の類はnetshコマンドをProcessクラスで使うのが一番手っ取り早いと思う
249:デフォルトの名無しさん
20/04/09 11:12:18.01 x5VgstST0.net
ローカルじゃなければProcess使うかなあ
250:デフォルトの名無しさん
20/04/09 11:17:42.26 MvrijcPz0.net
目的にもよるんだろうけど、PowerShellでスクリプト書く方が早そうな予感
完全にスレチになるけど
251:デフォルトの名無しさん
20/04/09 11:21:39.40 wyC9Ec3D0.net
内部でPowerShellスクリプトを走らせるC#プログラムを作る
252:デフォルトの名無しさん
20/04/09 12:41:32.88 kpg/tOgGF.net
>>248
ほんそれ +1
253:デフォルトの名無しさん
20/04/09 12:48:40.23 XKMcLRnY0.net
x ほんそれ
o ほんとそれ
正しい日本語で
254:デフォルトの名無しさん
20/04/09 14:07:27.20 wyC9Ec3D0.net
日本語を母国語としない人ほど
正しくない日本語で困るのです
255:デフォルトの名無しさん (ワッチョイ d701-jz5X)
20/04/09 21:32:00 ezz+hw670.net
ハンソロ
256:デフォルトの名無しさん
20/04/10 07:07:24.38 xmb7c5Fr0.net
>>245
新規開発でdatatable使ってたらうわってなる
257:デフォルトの名無しさん
20/04/10 08:53:16.36 9rsnwyfyM.net
>>256
今は何ですか?
258:デフォルトの名無しさん
20/04/10 08:53:52.31 GJl9p4h50.net
型付きDataSet
259:デフォルトの名無しさん
20/04/10 09:00:25.56 3BYzeKcKM.net
>>245
もうEFかDapperでええやろ
260:245
20/04/10 09:43:04.90 Rte1PrgOr.net
あーそういや気付けばdapperばっか使ってたわ
あいえにゅめにゃんにゃんが便利やしなあ
261:デフォルトの名無しさん
20/04/10 10:18:31.70 XzeHNtat0.net
DBとは無関係に
動的列、フィルタ&ソートしたまま行追加、みたいなのが必要な時はDataTable使ってる
262:デフォルトの名無しさん
20/04/10 11:00:45.18 nz1tlAhXF.net
DataTableでうわぁっってなるひとはJSONでくぇぇっってならんのまじで?
263:245
20/04/10 11:58:55.10 dIu9zrlt0.net
jitとか使ってそう
264:デフォルトの名無しさん
20/04/10 12:04:16.89 sXssV4F30.net
DataTableは2次元
JSONは3次元
265:デフォルトの名無しさん (ワッチョイ 4e2f-5WFu)
20/04/10 13:26:59 saZPvfHU0.net
EFもDapperも変更追跡がなぁ
266:デフォルトの名無しさん
20/04/10 13:54:32.33 /e8vDB+E0.net
>>265
Dapperにそんなもんあったっけ?
267:デフォルトの名無しさん
20/04/10 14:10:46.01 saZPvfHU0.net
>>266
ないよ
DataSetにはあるんだよ
268:デフォルトの名無しさん
20/04/10 14:29:32.62 /e8vDB+E0.net
EFにはあるやろ
269:デフォルトの名無しさん
20/04/10 15:28:01.76 SuSUfgJ80.net
Chartコントロールで横のスクロールバーを表示させる方法を教えてください。
サンプルプログラムは↓のをほぼそのまま使いました。( i < 5のところを i < 500に変えて数だけ増やしています)
チャートは普通に表示されるのですが、いろいろ探してもスクロールバーの出し方が全然わかりません。
URLリンク(qiita.com)
270:デフォルトの名無しさん
20/04/10 16:05:22.34 eaxyjA8iF.net
URLリンク(stackoverrun.com)
271:デフォルトの名無しさん
20/04/10 16:06:49.77 eaxyjA8iF.net
URLリンク(docs.grapecity.com)
272:デフォルトの名無しさん (ワッチョイ 4e2f-5WFu)
20/04/10 19:04:23 saZPvfHU0.net
>>268
ここで言ってるのはモデルが自分自身の変更内容を保持する機能な
EFにもないよ
もちろんモデルに自分で作りこめば可能だけどな
273:デフォルトの名無しさん
20/04/10 21:43:50.98 Q8afigXi0.net
DatasetやTableのoriginalが取れたりrejectでロールパック出来たりするのは確かに便利
274:デフォルトの名無しさん (ワッチョイ d701-jz5X)
20/04/10 22:14:18 phkDJesv0.net
トランザクションログ
275:デフォルトの名無しさん
20/04/11 02:58:17.93 EYr99YyX0.net
よぉ~しよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよし
276:デフォルトの名無しさん
20/04/11 13:19:24.89 n/kHMKTa0.net
>>270
ありがとうございます。解決しました
277:デフォルトの名無しさん
20/04/12 16:27:59.95 WBJoN6ah0.net
if(条件A && !条件B){}
みたいなことをしたいのですが、&&と!をまとめてきれいに書く方法はありますか?
278:デフォルトの名無しさん
20/04/12 16:48:42.14 insvI+xF0.net
var 条件C = 条件A && !条件B;
if(条件C){}
279:デフォルトの名無しさん
20/04/12 18:02:02.30 Vvo4XdlE0.net
クラスや関数にする
設計を見直す
あーりーりたーんを心がける
280:デフォルトの名無しさん
20/04/12 18:08:22.86 sgzIx9p/0.net
>>277
そんなものはない
C# 演算子
URLリンク(docs.microsoft.com)
281:デフォルトの名無しさん
20/04/12 18:11:50.67 7/OoXgJO0.net
>>277
関数にする
282:デフォルトの名無しさん
20/04/12 19:13:16.89 tx1YNXXn0.net
if (foo.IsEnabled && !bar.IsEnabled) を
if (foo.IsEnabled && bar.IsDisabled) にすることはある
単語の頭につけるエクスクラメーションマークは
見落としやすいから可読性がやや低い
>>278のパターンで変数にすることはあんまりないけど関数化するのもよくやる
283:デフォルトの名無しさん
20/04/12 19:22:29.59 xeq/pDNWa.net
>>277
おそらくそのまんまが一番きれいで見やすいぞ。
条件が長い式なら>>278みたいに一旦、適切な命名の変数に入れるのがいいと思う。
284:デフォルトの名無しさん (ワッチョイ c62d-kdbN)
20/04/12 19:43:51 WBJoN6ah0.net
一発で書けるのかなと、すごく疑問に思ってたよ
ありがとう!
285:デフォルトの名無しさん (アウアウウー Sabb-KL7n)
20/04/12 21:05:32 0dL6T2+Wa.net
一発で書けた
if (b ? false : a) {...}
一発で書けた
if (!(!a || b)) {...}
一発で書けた
Func<bool, bool, bool> ippatu = (x, y) => x && !y;
if (ippatu(a, b)) {...}
286:デフォルトの名無しさん (ワッチョイ cb02-AglQ)
20/04/12 21:27:27 JCmsoVoe0.net
XORでいいんだったら^一個で済むけど違うよな
287:デフォルトの名無しさん (ワッチョイ 622c-N9MB)
20/04/12 21:57:13 NV9JxSja0.net
Not演算子が見辛いから関数に置き換える
ぐらいでいい気はする
288:デフォルトの名無しさん
20/04/12 23:13:55.75 PHqFJcwka.net
>>285
1つ目は短絡評価の場合の動作が異なるから等価な式になってないし、2つ目の式は元の式より見辛くなって無意味だろう
289:デフォルトの名無しさん (ワッチョイ cb5f-zfCe)
20/04/13 10:34:31 xWnIwwwl0.net
>>286
カルノー図描いて観ろ
290:デフォルトの名無しさん (ワッチョイ bbda-P/Zs)
20/04/13 11:05:23 DkcwYYbx0.net
それでわかるのー
ベイチ図もありだね
URLリンク(qiita.com)
291:デフォルトの名無しさん
20/04/13 14:35:31.90 6KK4qS560.net
てかそんな条件がパット見でわからんくなるなら、根本的にそこにいたる道筋がおかしいと思うよ
292:デフォルトの名無しさん
20/04/13 17:03:53.08 wlUJ1QGb0.net
SSH.net使った事ある人います?
フォワードポイント設定後、Startしてプログラムは通ってるんですけど、なぜかポートが開かないので困ってます
RloginというフリーのSShソフト使うと同じポートが開くので、SSH.net側かVS側が原因と考えてます
ネットの先人たちの知恵を拝見して同じようにしてるんですけど、なぜか上手くいきません
開発環境
VS2017
Nugetより最新のSSH.netを入れてます
netstatコマンドでポートの確認したら、192.168.~の所が開かず、[::]の所が開いてるようです
これはなんなんでしょう?
293:デフォルトの名無しさん (ワッチョイ 17ad-qv0W)
20/04/13 17:14:22 Szw9E2890.net
>>292
ポートじゃなくてIPどうなってんの?
見た感じv6が開いてそうな感じだけど。
294:デフォルトの名無しさん (ワッチョイ ebb2-zja/)
20/04/13 17:18:05 ujcK/XL20.net
ポートフォアード開始してる?ステップインで状態とエラーメッセージ追えば理由なんとなくわかるんじゃね?
295:デフォルトの名無しさん (ワッチョイ 6207-O/Sq)
20/04/13 17:41:05 wlUJ1QGb0.net
>>293
>>294
返信ありがとうございます!
>>293さんのおっしゃる通りv6が開いてました
フリーソフトは両方開けてくれてたので、そこで勘違いしてました
こんな簡単な事でスレ汚してすいませんでした
ありがとうございました
296:デフォルトの名無しさん (ワッチョイ 36eb-AglQ)
20/04/13 19:23:38 o+L/gyE50.net
拡張メソッドがあるのに、拡張プロパティなどが無いのは何故でしょう?
多くの日本語解説サイトで DirectoryInfoではなくDirectoryを、EnumerateFilesでなくGetFilesを使ってるのは何故でしょう?
(対応していないバージョンのC#を利用する人も、その方が高速・妥当なコードも稀だと思うのですが…)
297:デフォルトの名無しさん
20/04/13 19:55:51.75 i5ardRu40.net
>>296
> 拡張メソッドがあるのに、拡張プロパティなどが無いのは何故でしょう?
Why No Extension Properties?
URLリンク(blogs.msdn.microsoft.com)
> 多くの日本語解説サイトで
解説を書いてるヤツらに聞け
298:デフォルトの名無しさん (ワッチョイ 622c-N9MB)
20/04/13 20:03:19 Bv/vlgUb0.net
拡張プロパティの類はC#10かもうちょい先ぐらいで追加されそう
URLリンク(ufcpp.net)
299:デフォルトの名無しさん (ドコグロ MM7a-juGi)
20/04/13 20:08:08 Wzp4v7WxM.net
>>298
最悪の提案だな
言語にこういう横断的関心事を入れられるようになるとだいたい無茶苦茶になるから、絶対にやめてほしい
300:デフォルトの名無しさん (ワッチョイ 36eb-AglQ)
20/04/13 20:26:56 o+L/gyE50.net
>>297,298
なるほど 確かにC#3.0に並んでるものと比べたら、優先度低くても全然不思議じゃないですね
将来的な実装を心待ちにしておきます ありがとう!
開発チームの内情というか現実的な部分の説明が面白かったw
>>299
言われてみれば、強力な反面 把握し辛い奇想天外なクソコードも書きやすくなりそうですね
301:デフォルトの名無しさん (ワッチョイ 0b17-AglQ)
20/04/13 20:49:56 4T6PL/Gc0.net
>>298
リフレクション使うとどんな挙動になるんだろ
302:デフォルトの名無しさん
20/04/13 21:10:08.00 Bv/vlgUb0.net
>>301
今の拡張メソッドと特に変わらんのじゃない?
>>299
ちなみに言語にこういうのを入れて滅茶苦茶になった言語ってどんなのがある?
どんな感じに滅茶苦茶になったのかな
303:デフォルトの名無しさん
20/04/13 21:18:16.05 VqvNVGMOa.net
>>302
そういう失敗例ならScalaでも見てみたら
304:デフォルトの名無しさん
20/04/13 23:30:22.44 IBaPMQxT0.net
Taskとasync/awaitの使い方について質問です
await Task.Delay(100);
と
task.Wait();
を組み合わせるとデッドロックすると色々なページで書かれていますが
試したらデッドロックしませんでした
URLリンク(ideone.com)
ConfigureAwaitもよく分かっていません(コンテキストとかマーシャリングとかも・・・)
URLリンク(docs.microsoft.com)
なぜデッドロックしなかったのか教えてください
305:デフォルトの名無しさん
20/04/13 23:33:06.25 LODcFAHq0.net
>>304
guiでWaitメソッドを使ってみて
306:304 (ワッチョイ 6233-AglQ)
20/04/14 00:04:17 wwnZT3mo0.net
WPFで適当なボタン作ってクリックイベント内で同じようなことをしたらフリーズしました
GUIじゃなければ起きない、とかでしょうか
CUIだとフリーズせず実行できてしまいます
307:デフォルトの名無しさん (ワッチョイ 8eda-KRXG)
20/04/14 02:23:36 hp+6QaJX0.net
・UIスレッドは1つしかない
・GUIアプリの場合、await後は生成元のスレッドに戻ろうとする
・ところがUIスレッドはawaitしている
・お互い待ち合うことでデッドロック発生
CUIの場合はawait後に元のスレッドに戻らないのでデッドロックしない。
GUIでもAsync1、Async2のメソッド内で
await Task.Delay(100).ConfigureAwait(false);
とすればデッドロックしないが、Async1やAsync2でDelay後にUI部品触ると(ボタンのキャプション変えるとか)落ちる
308:304 (ワッチョイ 6233-AglQ)
20/04/14 09:01:56 wwnZT3mo0.net
なんとなくわかった気がしました
SynchronizationContext.Currentで取得できる同期コンテキストでawaitの動作が変わってるみたいで
CUIはもともとnull、WPFは
await Task.Delay(100).ConfigureAwait(false);
のあとはnullになるようです
一度nullにしてしまえば
await Task.Delay(100);
Async().Wait();
とやってもフリーズしませんでした
というかCUIと同じようにawait毎にスレッドがコロコロ変わるようになります
逆にCUIでも同期コンテキストを設定してしまえばデッドロックも起こせるみたいです
SynchronizationContext.SetSynchronizationContext(new WindowsFormsSynchronizationContext());
とやったらCUIでもフリーズしました
普通のnew SynchronizationContext()ではフリーズしないので、知らない仕掛けがありそうですが
同期コンテキストの作られ方によってawaitの動作が変わるから
デッドロックが起きたり起きなかったりする、という感じがしました
309:デフォルトの名無しさん (ワッチョイ 7b0c-AglQ)
20/04/14 11:04:24 27IsOs6K0.net
WinformsやWPFは各々フレームワークのコンポーネントの初回呼び出しで
それぞれ専用の同期コンテキストを自動で現在のスレッドに設定して
await 式から自動生成されたコードで現在の同期コンテキストのSendやPostを呼び出してるって割と単純な話だわよ
310:デフォルトの名無しさん
20/04/14 21:47:37.07 kOEIvzYK0.net
質問失礼致します。
URLリンク(xr-hub.com)
の2番目のサンプルコード「Person.cs」に
public Person(string name, Job job)
という行があるのですが、これは関数ですか?
publicの後の型やvoidを省略した時、どういう扱いになっているのでしょうか?
(暗黙的にvoidなど)
初歩的すぎる質問ですが知恵をお借し頂ければと思います。
よろしくお願い致します。
311:デフォルトの名無しさん
20/04/14 21:49:20.96 LYeRKBcY0.net
>>310
コンストラクタで検索してみよう
312:デフォルトの名無しさん
20/04/14 21:52:06.64 LIgN/yKN0.net
>>310
それはコンストラクタで関数じゃない
つ URLリンク(www.kumei.ne.jp)
313:デフォルトの名無しさん (ワッチョイ 7b59-vo9w)
20/04/14 22:02:45 kOEIvzYK0.net
>>311,312
コンストラクタと言うキーワード自体を知らなかったので大変助かりました!
迅速なお答えありがとうございます。
314:デフォルトの名無しさん
20/04/14 22:48:21.91 GtUt/+gx0.net
コンストラクタが関数じゃないだとっ?
315:デフォルトの名無しさん
20/04/14 23:10:59.52 e1S+5JbE0.net
>>312
え?
316:デフォルトの名無しさん (ワッチョイ ebb2-zja/)
20/04/14 23:32:09 a7j1JMim0.net
>>313
コンストラクタ知らないとか煽り抜きで基礎からやり直せ。この先すぐに行き止まりやぞ
317:デフォルトの名無しさん (ワッチョイ 06f2-shd/)
20/04/14 23:38:54 aqCEjjHy0.net
ゆっくり進んでいけばいいさ
318:デフォルトの名無しさん
20/04/15 00:53:54.59 fYr2Vm730.net
コンストラクタは言語によってちょこちょこ違いがあるからなあ
それによって作法も、チームとかのなかでの使い方も違うんだよな
319:デフォルトの名無しさん (ワッチョイ 7feb-Ho7r)
20/04/15 06:29:23 ElrUDxqt0.net
初心者で妥当な用語もよく分からないのですが、
Sytem.IO.File全体を Sytem.IO.FileInfoで上書きしたり
Sytem.IO.File全体を FileUtilsにリネームして利用ってできるでしょうか
多分歴史的経緯とかなんでしょうが、名前も機能も違和感ある・・・あるよね?
320:デフォルトの名無しさん (ワッチョイ 7feb-Ho7r)
20/04/15 06:30:19 ElrUDxqt0.net
正system
誤sytem
321:デフォルトの名無しさん
20/04/15 07:39:24.57 0X0pe0WE0.net
>>319
名前空間の上書きは出来るよ
using に= を付ける。
マニュアル読むべし
322:デフォルトの名無しさん (ブーイモ MMbb-XMn9)
20/04/15 07:54:03 HIqtt51zM.net
マニュアル読むならこのスレには来ないよ
323:今度はビルドとはとか言い出すんだろうか? (ドコグロ MMbf-A2g6)
20/04/15 07:59:57 WVx1tERFM.net
進歩しろってことだろ
>>322には一生無理っぽいが…
324:デフォルトの名無しさん (ワッチョイ 7feb-Ho7r)
20/04/15 08:16:40 ElrUDxqt0.net
>>321
ありがとう! alias directiveで上書きになるのか
aliasって単語から、上書き用に使うという発想が出てこなかった・・・
325:デフォルトの名無しさん
20/04/15 11:11:56.53 O8tgepsJ0.net
>>319
名前も機能もべつに違和感ないけど
326:デフォルトの名無しさん (ワッチョイ d763-oiAQ)
20/04/15 11:38:37 hXBJaVw20.net
>>319
すでにFileInfoは存在してるしUtilsみたいな抽象的な名称はあんま好きじゃない
あくまでもnamespaceなんだから個人的に違和感は無い
327:デフォルトの名無しさん (アウアウウー Sa1b-V/21)
20/04/15 12:23:21 4U/dMrxba.net
>>319
あなたの違和感をなくすために他人に違和感を与えるコードを書いてはダメでしょうw
そういう尾崎豊的な「世の中間違ってる!」は義務教育で卒業しておけよw
インフラはみんなが慣れ親しんで知識を共有していることに意味があるんだよw
変なエイリアスを使うことはあなたの「俺流」を理解する手間を読む人に押し付けることになる。
それは1年後の自分自身かもしれないよw
328:デフォルトの名無しさん
20/04/15 15:49:28.85 fYr2Vm730.net
自分だけのコードなら好きにすればとしか
チームで共有するならレビューしろとしか
329:デフォルトの名無しさん (ワッチョイ 372c-+ZVK)
20/04/15 23:14:10 erSE2P+N0.net
添付プロパティがあるじゃない
330:デフォルトの名無しさん (ワッチョイ 7feb-Ho7r)
20/04/16 00:47:09 97EKYXOu0.net
まさにそういう話で、(大多数が慣れ親しんだ知識である)自然言語で full path of a file だから
(FileInfo) hoge.FullName より
(File) file.FullPath の方が読みやすく、知識なく利用しやすくない? と思ったんだ
自分が知らないだけでFileInfoやFullNameの方が妥当な理由あるのかな