■ このスレッドは過去ログ倉庫に格納されています
ふらっと C#,C♯,C#(初心者用) Part147
- 1 :デフォルトの名無しさん :2020/02/19(水) 17:25:41.55 ID:IsrGexiaF.net
- !extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part146
https://mevius.5ch.net/test/read.cgi/tech/1576069931/
■関連スレ
C#, C♯, C#相談室 Part95
https://mevius.5ch.net/test/read.cgi/tech/1508168482/
■コードを貼る場合は↓を使いましょう。
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
- 2 :デフォルトの名無しさん :2020/02/19(水) 17:29:40.75 ID:edMDbkMkF.net
- C#
- 3 :デフォルトの名無しさん (ワッチョイ ff63-ufZq):2020/02/20(Thu) 01:30:01 ID:0E34SqOf0.net
- ガチガイジとスルーもできないキッズには、ワッショイは何の効果もないと十分証明されたろ
- 4 :デフォルトの名無しさん (ワッチョイ ff6a-Nz9x):2020/02/20(Thu) 01:40:39 ID:C2E41YSR0.net
- >>3
全然されてない
ワッチョイなかったらもっと酷いことになってた可能性がある
- 5 :デフォルトの名無しさん (ワッチョイ a3e7-KdKg):2020/02/20(Thu) 02:48:48 ID:xxzDxoBT0.net
- ワッチョイでNGすれば良いし
- 6 :デフォルトの名無しさん :2020/02/20(木) 03:04:29.36 ID:M4vgGbqza.net
- >>3
だから、その通りだけどそんなこと言っても「バカの壁」の向こう側には絶対通じないw
特に日本はそういう国ですってw
そんなこといい歳こいてたら毎日嫌というほど体験してるよね
ワッチョイは有害無益なだけだけど、害と言っても別にたいしたことないので
それでイラショナルな皆さまの気が済むなら目くじら立てることもないと思う。
愚かしいとはいつも思ってるけどwww
- 7 :デフォルトの名無しさん (ラクッペ MM87-wHG4):2020/02/20(Thu) 07:02:00 ID:lwE/hX+lM.net
- 本当に証明された?
ワッチョイないと自演楽だからコロコロ変える奴いそうだが
- 8 :デフォルトの名無しさん :2020/02/20(木) 07:23:34.72 ID:W2AwCBod0.net
- 息をするように自演するやついるんだよな
プログラマというか技術職自体向いて無いからさっさと立ち去ってほしい
- 9 :デフォルトの名無しさん :2020/02/20(木) 10:30:18.93 ID:sbHTvmgoF.net
- >>6
新型チュンコロ感染と一緒で常在化しててもただちに影響はありませんな
- 10 :デフォルトの名無しさん (アウアウウー Sae7-icJa):2020/02/20(Thu) 12:38:26 ID:M4vgGbqza.net
- 言っても無駄だけど、普通の人は2chくんだり、特にこんな人口が少ない板の
人口が少ないスレで「自演」とやらをやりたいなんて動機を持ってない。
もちろんこの世は普通じゃない人もいる。
その普通じゃない人がワッチョイ付いてるぐらいで普通じゃない行為をギブアップするだろうか?
ありえなんじゃないの?
あんあの気が済むだけだよ。
だいたいそもそも他人の自作自演が気になること自体が普通じゃないよ悪いけど。
それ、何が問題なの?意味が分からないよ。
日本って地方の条例どころか国の法律がこういう目的や実効性を吟味せずに
感情論で制定される感情論の国なんだよね。韓国と100%同じ
- 11 :デフォルトの名無しさん (ラクッペ MM87-wHG4):2020/02/20(Thu) 12:40:53 ID:lwE/hX+lM.net
- ワッチョイのどこが有害なのか
なにもしなきゃ無害だろう
- 12 :デフォルトの名無しさん :2020/02/20(木) 12:43:48.28 ID:sbHTvmgoF.net
- 防衛する側としてはワッショイのおかげで見なくて済むから気が済むのは確か
- 13 :デフォルトの名無しさん :2020/02/20(木) 13:22:03.09 ID:mvd02NB50.net
- 家に鍵かけたって本気の泥棒はどこからでも入ってくる
だから鍵なんて無くすべきだって主張?
一部でも効果があり、他者にデメリットが無いならあっていいんじゃいの?
一部というのが例え1%だろうとあって困らないならあっていいじゃん
デメリットがあるなら効果のある範囲とデメリットの内容の天秤になるのはわかる
そしてその天秤具合は人それぞれなので議論しても答えは出ない宗教論争と一緒
- 14 :デフォルトの名無しさん :2020/02/20(木) 14:26:02.37 ID:0JvS6qsQ0.net
- 変な書き込みがあっても、普通は気にしなけりゃいいだけだろう
だけど統合失調症の人には、そういう書き込みが目に入るだけで発狂しちゃうんだろうな
ワッチョイは統合失調症の閲覧者のためにあるようなもん
- 15 :デフォルトの名無しさん :2020/02/20(木) 14:37:30.03 ID:ZbpWL9ae0.net
- 毎日IDでNGに放り込むか、週一でワッチョイでNGに放り込むかの違いしかないなw
- 16 :デフォルトの名無しさん :2020/02/20(木) 15:19:48.73 ID:IVVK5qcRa.net
- 道端に落ちてるゴミや犬の糞は見たくない。掃除するのが毎日なのか週一ですむのかなら、後者の方がありがたいというのは普通の感覚だと思うぞ。
- 17 :デフォルトの名無しさん :2020/02/20(木) 15:20:24.08 ID:mvd02NB50.net
- ワッチョイって後ろ4文字は1週間でもかわんないんじゃなかった?
いつも後ろ4文字でNG入れてるわ
- 18 :デフォルトの名無しさん (ワッチョイ ffb9-icXw):2020/02/20(Thu) 15:36:09 ID: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):2020/02/20(Thu) 15:49:35 ID:huOL9BGI0.net
- https://referencesource.microsoft.com/#PresentationFramework/src/Framework/System/Windows/Thickness.cs,109d8135ab5a3074
Left ^ Top ^ Right ^ Bottomだから全部同値なら0
手抜き実装ではあるが別に不具合というわけでもないな
- 20 :デフォルトの名無しさん (ワッチョイ ffb9-icXw):2020/02/20(Thu) 16:01:01 ID:jdtbGwr30.net
- >>19
ありがとうございます。
なるほど。。。メジャーなものでもこういう手抜き実装ってあるものなんですね。
不具合だと認められて直してもらえる雰囲気でもなさそうなら、
諦めて自前で EqualityComparer を作るしかないでしょうか。
ただこうなってくると、>>18 で使っている ValueTuple の
GetHashCode の実装も怪しく感じてしまうのですが、
もしそちらのソースコードもご存知でしたら教えていただけないでしょうか。
(貼り付けていただいた Reference Source では見つかりませんでした)
よろしくお願いいたします。
- 21 :デフォルトの名無しさん (ワッチョイ 8f7c-kENX):2020/02/20(Thu) 16:23:37 ID:huOL9BGI0.net
- https://github.com/dotnet/coreclr
.NET CoreのソースだけどValueTupleなら.NET Frameworkでもそのまま持ってきてるんじゃないかな
- 22 :デフォルトの名無しさん :2020/02/20(木) 17:21:18.55 ID: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):2020/02/20(Thu) 17:37:44 ID: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):2020/02/20(Thu) 18:09:06 ID:DIV2RvDKa.net
- Hello!
って表示された…!
- 25 :デフォルトの名無しさん :2020/02/20(木) 18:57:40.71 ID:Pb7WanUc0.net
- タプルに一括で関数適用する文法でもあるのかと思った
- 26 :デフォルトの名無しさん :2020/02/20(木) 19:19:27.62 ID:2rLj+nIZM.net
- >>15
結構でかくね?
- 27 :デフォルトの名無しさん :2020/02/21(金) 03:13:35.78 ID:xBmtUMMla.net
- 石取りゲームできた…!
日記ですみません
- 28 :デフォルトの名無しさん (ワイーワ2 FFdf-HF0o):2020/02/21(金) 12:21:46 ID:5cQWFY2cF.net
- おめ
- 29 :デフォルトの名無しさん (ラクッペペ MM7f-wHG4):2020/02/21(金) 12:39:57 ID:Z2lAagbxM.net
- Twitterでやれ
- 30 :デフォルトの名無しさん :2020/02/21(金) 15:08:34.18 ID:4h0xZa5sH.net
- matrixのライブラリ(C#版 & F#版)
ttp://x0000.net/topic.aspx?id=3711-0
matrixのテンプレート ライブラリ(C++版)
ttp://x0000.net/topic.aspx?id=3674-0
アルファ・ラボ|学術掲示板群
(理系 文系 工学 語学)
ttp://x0000.net/
- 31 :デフォルトの名無しさん (ワッチョイ cf2d-z3z/):2020/02/22(土) 15:57:17 ID:7CwG8WAb0.net
- 各DIコンテナがやってくれる注入作業って、どういう仕組みで行われているの?
インターフェイスやらコンストラクタの引数やらをリフレクションで取ってきて、注入してるのかな?
- 32 :デフォルトの名無しさん (ワッチョイ ff01-pEhb):2020/02/22(土) 16:57:57 ID:nfgptzfk0.net
- >>31
基本的にはそう
型情報を取得してActivator.CreateInstance()みたいのでインスタンス生成して渡してる
- 33 :デフォルトの名無しさん (ワッチョイ cf2d-z3z/):2020/02/22(土) 18:39:28 ID:7CwG8WAb0.net
- >>32
ほんと、不思議で不思議でたまらなかったわ
ありがとう
- 34 :デフォルトの名無しさん (ワッチョイ b317-Nz9x):2020/02/22(土) 19:49:40 ID:CYM04x9q0.net
- OSSの中身確認するのが一番早いよ
入り口さえわかれば後の処理を追うのは簡単
- 35 :デフォルトの名無しさん (ラクッペペ MM7f-wHG4):2020/02/23(日) 00:10:20 ID:wbGqawi7M.net
- くだらねえ
- 36 :デフォルトの名無しさん (ワッチョイ b35f-Nz9x):2020/02/23(日) 11:37:03 ID: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):2020/02/23(日) 11:42:20 ID:h4Sd0hn50.net
- 逆だった
WifiCtrl
でいいものか・・・
- 38 :デフォルトの名無しさん :2020/02/23(日) 12:15:23.08 ID: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):2020/02/23(日) 15:06:59 ID:GBgAuRZAa.net
- >>36
名前が適切かどうかはそれだけの情報では誰も判断できないでしょうw
質問は変数のネーミングだけど、そもそも変数(フィールド)をそのまま公開するのは
普通は良くない作法だよね。
読み出し専用のプロパティーにした方がいいと思う。
シングルトンにする必要性は個人的には疑問
- 40 :デフォルトの名無しさん (ワッチョイ 7f52-xY2O):2020/02/23(日) 15:19:44 ID:mVzZkmaX0.net
- >>36
変数名を単体で悩むより、名前空間を適切に使えばいいのでは?
- 41 :デフォルトの名無しさん :2020/02/23(日) 16:11:03.65 ID:HGdGso/xM.net
- シングルトンかっこいいじゃん
- 42 :デフォルトの名無しさん :2020/02/23(日) 16:40:17.12 ID:qRVHuH/p0.net
- わかる
- 43 :デフォルトの名無しさん :2020/02/25(火) 12:06:33.83 ID:K+FIgRaj0.net
- シングルトンって利点がよく分からない
それもうstatic classで良くない?って思うんだけど継承とかインターフェースのためだけにそうしないだけ?
- 44 :デフォルトの名無しさん :2020/02/25(火) 13:15:34.49 ID:FzVRg2bhF.net
- static Struct
- 45 :デフォルトの名無しさん :2020/02/25(火) 13:22:35.51 ID:5IAL5cM20.net
- singletonならインスタンス生成タイミングを制御できる利点がある
初期の立ち上げを極力軽くしたい時とか
そういうのあんま気にしなくていい環境ならstaticでもいいかと
- 46 :デフォルトの名無しさん :2020/02/25(火) 13:30:56.90 ID:rfLfmv0Z0.net
- >>43
デバイスなどのアクセスでインスタンス2つ持ちが意味無いかバッティングするから1つにしたいとき?
ログ出力とか単一のファイル書き込み読み込み
DBアクセス(同時アクセス不可時)とかいいかな?
一応やっといてバッティング対策必要だったらやる感じで?
(まあ、だいたいライブラリ側でやってくれっけど)
- 47 :デフォルトの名無しさん (ワッチョイ a324-D8OL):2020/02/25(火) 14:03:18 ID:K+FIgRaj0.net
- >>45
static classだって静的コンストラクタで実質同じ事できるじゃん
_instance ?? (_instance = new Class())って形と実質同じだよね
まぁ継承使えないとか制約多いからってことなんだろうけど、staticおじさんアレルギーなのか知らないけど死んでもstaticは使わないって風潮もどうかと思う昨今
- 48 :デフォルトの名無しさん (アウアウウー Sae7-icJa):2020/02/25(火) 14:12:26 ID:o7stKPona.net
- ほとんどの場合ちょっと大げさ過ぎる感じなんだよねシングルトン。
唯一であることを保証するのにそこまで強制力が必要か疑問だし、
唯一であることを保証する責任を「その」クラス自身に負わせるのが本当に妥当かどうかも疑わしい。
ほとんどの場合、プログラムで唯一のものを共有したいなら、
共有オブジェクト取得用のstaticクラスを作る方が普通に素直な考え方に感じるよね。
必要論者はポカ防止のために強制力が必要って言うんだろうけど
それは問題のすり替えだと思うんだよね。
そんなポカが起こる状況自体が間違ってるよね。
もちろん絶対の強制力が必要なケースだってたぶんあるとは思うけど。
>>47
まあ少なくとも、一度staticクラスでシングルトン実装しちゃうと
今度はマルチにしたいと思っても簡単にできない問題はある。
だからstaticクラスでシングルトンも個人的にはちょっと気持ち悪く感じる
- 49 :デフォルトの名無しさん (ドコグロ MM67-lfYl):2020/02/25(火) 14:16:11 ID:9IyrqwVFM.net
- 激しく同意
シングルトンを使う奴はほぼ例外なく「インスタンスを唯一に制限するため」を言い訳にして、その実はグローバル変数が欲しいだけ
実際にはインスタンスが一つでなければならないクラスなどほとんどない
一つしか作れないのではなく「アプリで一つしか必要ない」のであれば、>>48のようにstatic寄せ集めクラスを作るべき
- 50 :デフォルトの名無しさん :2020/02/25(火) 14:33:00.25 ID:oSeHo6cg0.net
- >>47
>static classだって静的コンストラクタで実質同じ事できるじゃん
static classのコンストラクタがいつ実行されるかはコントロールできないよ
確実にlazy loadingしたい場合や
高価なリソースなので状況によっては解放したい場合とか
いろいろと使いどころある
逆にシングルトンは面倒くさいから
static classで間に合うユースケースならstatic使っとけばいい
- 51 :デフォルトの名無しさん (ワンミングク MM9f-RsP6):2020/02/25(火) 15:01:43 ID:IPCihoyTM.net
- おかしい…「モダン言語と現行ライブラリ下においてはシングルトンパターンを適用することは通常開発下ではまずないが」という大前提がまったく共有されていない…
もしかして10年前の感覚で脳内敵を殴りつけてスッキリ喋ってる…?
- 52 :デフォルトの名無しさん (ワッチョイ ff63-ufZq):2020/02/25(火) 15:04:06 ID:9vKHdmbh0.net
- テメエも皮肉ってればいいと思ってんなよガキ
- 53 :デフォルトの名無しさん (ササクッテロ Sp07-4NuP):2020/02/25(火) 15:27:35 ID:1xtbBMnCp.net
- 死んでもstatic使わない、じゃなくて死んでもシングルトン使わない、の話になってるが
- 54 :デフォルトの名無しさん (ワッチョイ 6388-qdXs):2020/02/25(火) 17:25:56 ID:5IAL5cM20.net
- singletonがデザパタの中で意義も理解しやすく実装もそこそこ分かりやすく楽で有効に利用できると思わせる範囲が広いから無駄に広まってしまった
他により有効な手段ができても単一インスタンスだからsingletonで!っていう脳死とstaticは結局グローバルだからとにかく駄目!とかいうこれまた脳死が合わさってしぶとく使われているだけじゃない?
- 55 :デフォルトの名無しさん (ワッチョイ 730c-Nz9x):2020/02/25(火) 19:02:03 ID:YCFpdAhz0.net
- どこにstaticはとにくかくダメだなんて話が出てるのか
- 56 :デフォルトの名無しさん :2020/02/25(火) 20:48:36.91 ID:CjA4SEoV0.net
- GoF初版は4半世紀前のJavaすら出る前だぜ
そろそろ新しい版を誰か書いて
- 57 :デフォルトの名無しさん :2020/02/25(火) 21:46:44.65 ID:rfLfmv0Z0.net
- 初めstaticで足りると思ったんだけど
対象のクラスに
継承やIFいんじゃんクソが
ってなるといつの間にかにシングルトンなってたりするだけだ
- 58 :デフォルトの名無しさん :2020/02/25(火) 22:40:31.11 ID:BegpSlwc0.net
- >>57
これだよね。
staticクラスやグローバル変数でもいいんだけど呼び出し側に影響させないで実装を拡張できるという。
- 59 :デフォルトの名無しさん :2020/02/25(火) 23:30:16.22 ID:K+FIgRaj0.net
- >>50
シングルトンが初回アクセス時に実行されるのと同様にstaticコンストラクタもそのクラスのいずれかに初回アクセス時に実行されるから同じ事だと思うよ
- 60 :デフォルトの名無しさん :2020/02/26(水) 01:29:08.48 ID:sMj0eedP0.net
- >>59
初回アクセス時よりも前にロードされることが保証されてるのと
初回アクセスしたそのタイミングで実行されるのとは意味が違う
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/static-classes-and-static-class-members
仕様としては明記されてないが
static classを含むnamespaceがロードされるタイミングでstatic classもロードされてたはず
- 61 :デフォルトの名無しさん (ワッチョイ 4e7c-FlcA):2020/02/26(水) 10:56:30 ID:/kjPVa9J0.net
- 型名の一部でしかないnamespaceのロードって何…?
- 62 :デフォルトの名無しさん (ワッチョイ 8a01-k1AF):2020/02/26(水) 11:28:50 ID:sMj0eedP0.net
- >>60
念の為試してみたら俺が間違ってたわ
すまん
static classでもLazy<T>使えば必要なタイミングまで確実に遅延できた
- 63 :デフォルトの名無しさん :2020/02/26(水) 12:01:04.52 ID:QHwYyYy1d.net
- 当たり前なんだけどsingletonでしか実現できない話じゃなくてsingletonなら自然にできる話だからね
singletonじゃなくたって実現方法はいくらでもある
こうすりゃできるなんてわかりきった上で話してるんだよ
- 64 :デフォルトの名無しさん :2020/02/26(水) 12:04:17.00 ID:xo5HgIYJ0.net
- >>63
そのsingletonが有用な場面ってのを解説してくれ
- 65 :デフォルトの名無しさん :2020/02/26(水) 12:08:38.94 ID:QHwYyYy1d.net
- >>64
環境的にstaticが使えないとか?C#じゃあんまないんじゃない?
組み込みC環境だとstatic不可とかあるよ
- 66 :デフォルトの名無しさん :2020/02/26(水) 12:11:40.77 ID:QHwYyYy1d.net
- ところでsingletonが有用な場面ってどっから湧いた話?
過去レス確認したけど、俺そんなこと言ってなかったんだけど
- 67 :デフォルトの名無しさん :2020/02/26(水) 12:16:01.74 ID:91Y2xJrV0.net
- >>60
メンバーの話じゃなくてコンストラクタね
static class Human
{
static Human(){} //←この部分は保証されてる
}
- 68 :デフォルトの名無しさん (JP 0H82-SZE8):2020/02/26(水) 14:16:45 ID:oid0ZUpoH.net
- ある強力なFor関数を紹介いたす(C#)
ttp://x0000.net/topic.aspx?id=3630-0
アルファ・ラボ|学術掲示板群
(理系 文系 工学 語学)
ttp://x0000.net/
- 69 :デフォルトの名無しさん :2020/02/26(水) 15:11:05.12 ID:/kjPVa9J0.net
- ただのAggregateでは?
- 70 :デフォルトの名無しさん (アウアウウー Sa2f-A7eh):2020/02/26(水) 17:52:39 ID: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):2020/02/26(水) 18:15:26 ID:uSMym8r00.net
- >>70
それはシングルトンじゃねーよ
まずシングルトンはnewしない
- 72 :デフォルトの名無しさん (ワッチョイ 03a7-efYq):2020/02/26(水) 18:19:20 ID:ZCj63VZA0.net
- >>71
一回目は作るべ?
- 73 :デフォルトの名無しさん (アウアウウー Sa2f-A7eh):2020/02/26(水) 18:21:41 ID:FtoTEkgba.net
- >>71
揚げ足取りはいいけど、よく読んでからにして欲しいよね
- 74 :デフォルトの名無しさん (ワッチョイ ca42-DFeu):2020/02/26(水) 18:22:19 ID:uSMym8r00.net
- >>72
つか、インスタンスは自分自身の中にスタティックで用意する
そのクラスのスタティックプロパティー経由でインスタンスを参照するが
最初の参照時にシングルトンクラスで自身の中に生成する
だから外部で使うクラスはインスタンスを明示的に生成しません
- 75 :デフォルトの名無しさん (ワッチョイ 4e7c-FlcA):2020/02/26(水) 18:30:13 ID:/kjPVa9J0.net
- > インスタンスは自分自身の中にスタティックで用意する
private static Form2 Singleton { get; set; }
用意してるな
> 外部で使うクラスはインスタンスを明示的に生成しません
public static void ShowSingleton()
{
if (Singleton == null || Singleton.IsDisposed) Singleton = new Form2();
してないな
- 76 :デフォルトの名無しさん (ドコグロ MM13-bE1b):2020/02/26(水) 18:40:31 ID:qN9Z1rJQM.net
- >>62
それ実体が生成されないだけでLazy<T>自体はロードされるだろ
- 77 :デフォルトの名無しさん (ワッチョイ 8a01-k1AF):2020/02/26(水) 18:42:00 ID:sMj0eedP0.net
- シングルトンじゃなく
シングルトン的な発想が有用なケースって確かに書いてるね
- 78 :デフォルトの名無しさん (ワッチョイ ca42-DFeu):2020/02/26(水) 18:50:11 ID:uSMym8r00.net
- >>77
シングルトンの最大の特徴は、複数のクラスから一つのインスタンスを参照できることだから
それはシングルトン的なものでもない
>>75
シングルトンではSIngletonクラスの内部にたった一つのインスタンスがプライベートで格納されている
それをSingletonのスタティックメソッドやスタティックプロパティーで参照するのがGOFのデザパタだ
- 79 :デフォルトの名無しさん :2020/02/26(水) 19:43:16.15 ID:JBdLkQQ40.net
- シングルトンって、昔は、複数インスタンスが作られる可能性を潰すためにやってたんだろうけどさ
今は、主にDIコンテナへの指示みたいなもんとして役立ってんじゃねえのか?
- 80 :デフォルトの名無しさん :2020/02/26(水) 20:21:07.70 ID:J/Z+GoCJM.net
- DIコンテナ使ってるなら、DIコンテナが自動的にインスタンス化して単一のインスタンスを各所へ注入してくれるから、
GoFのシングルトンパターン(というかグローバルインスタンスアンチパターンとでも呼ぶべきもの)は全く必要ないよ
- 81 :デフォルトの名無しさん :2020/02/26(水) 21:07:30.64 ID:JBdLkQQ40.net
- 単一かどうかはコンテナへの突っ込み具合で違ってくるんじゃないの
シングルトンでって指定していなければ複数インスタンス化されちゃうでしょう
- 82 :デフォルトの名無しさん :2020/02/26(水) 21:12:48.10 ID:pSd33gsra.net
- 属性などで指定するだけだよ
- 83 :デフォルトの名無しさん :2020/02/27(木) 08:46:08.57 ID:LiuiNLxS0.net
- >>77
グローバル変数を単にフォームにおいてアクセス制御しただけで次とほぼ変わらないな
staticでいいじゃん側の話に思える
private static Form2 _form;
public static Form2 Hoge{
get{
if(_form == null || _form.IsDisposed)_form ==new Form2();
return _form;
}
}
- 84 :デフォルトの名無しさん :2020/02/27(木) 08:57:22.75 ID:/W1ksVR5p.net
- もうめんどくせえからstaticも中でシングルトン使ってるから
実質シングルトンパターンって事でいいよ
- 85 :デフォルトの名無しさん :2020/02/27(木) 12:49:09.42 ID:ENhVujQ1a.net
- 日本人はすぐそういう党派的(どっちの側にお前はつくんだ?}で幼稚な話になるよねw
>>83
そういう話じゃないってw
>>70のコードびShowSingletonというメソッドはもちろんForm2以外のクラスに
書くことも出来るけど、それが分かりやすいですか?
こういう話だから。
シングルトンがあんまり有用じゃないとしても、
「唯一のオブジェクトを管理したり窓口になったりする役割をそのクラス自身に持たせる」
というシングルトン的なアイデアは応用できる、と言ってるんだけど、
これがそんなに難しい話かなw
- 86 :デフォルトの名無しさん (オッペケ Sr03-8X5p):2020/02/27(Thu) 17:27:49 ID:0jrc+WC1r.net
- そのアイデアを実現する手法としてstaticはどうだって話してたんじゃないないのか
- 87 :デフォルトの名無しさん (ドコグロ MM02-bE1b):2020/02/27(Thu) 19:49:51 ID:6N44UBOdM.net
- >>85
日本人はーっていうのも相当アホっぽいけどなw
外人だってエディタとかLinux vs. BSDとか宗教戦争しまくり
てか中東の内戦なんてガチの宗教戦争だし
- 88 :デフォルトの名無しさん (ワッチョイ 03a7-efYq):2020/02/27(Thu) 20:14:51 ID:NGAf+NLq0.net
- うっかり2つ作らせない方法だからな
- 89 :デフォルトの名無しさん (アウアウウー Sa2f-A7eh):2020/02/27(Thu) 22:15:47 ID:ENhVujQ1a.net
- >>87
日本人と欧米人の論争の仕方の違いは明らかで、
それは別に俺のオリジナルの見解でも何でもないよw
今のこの話なら、日本人のダメなところは「シングルトンパターンの利点はここで問題点はここで」
という議論が苦手なこと。
日本人は一度決めた「立場」に固執して全肯定か全否定かになりやすい。
好き嫌いを持ち込むべきでない評価に好き嫌いを持ち込みがち。
エディターとかはいいんよ別に好き嫌いで語れば。技術的な話はおかしいでしょ。
板違いだからもう止めるけどね。
- 90 :デフォルトの名無しさん (ワッチョイ ca01-bE1b):2020/02/27(Thu) 22:46:12 ID:RMeeA8fN0.net
- >>89
> 今のこの話なら、日本人のダメなところは「シングルトンパターンの利点はここで問題点はここで」
> という議論が苦手なこと。
それでどちらかに決まるなら宗教戦争なんてすぐに解決してるよw
そもそも技術的な話とか言うわりには
> それが分かりやすいですか?
なんて人によって意見が違うことを言い出すから戦争はいつまで経っても終わらないわけで…
- 91 :デフォルトの名無しさん (ワッチョイ 03a7-efYq):2020/02/27(Thu) 23:52:28 ID:NGAf+NLq0.net
- >>89
まあ、外人ならってのは幻想だな
そもそも奴らがそんなに頭が良かったのならオブジェクト指向なんて流行ってない
リーナスが言ったようにオブジェクト指向はカルトだ
誰もメリットなんて説明できない
それでも海を超えて日本へ来たのさ
- 92 :デフォルトの名無しさん :2020/02/28(金) 00:58:28.47 ID:W4dF7kHwa.net
- >>90-91
なんか党派的主張のお手本みたいなレスで何だかなあという気持ちになるけど
言っても無駄だねたぶんw
- 93 :デフォルトの名無しさん (ワッチョイ ca01-bE1b):2020/02/28(金) 06:43:53 ID:lgmUZMDZ0.net
- >>92
技術的なお話とか言う割には
> なんか党派的主張のお手本みたいなレスで何だかなあという気持ちになるけど
みたいなレスしかできない時点で…
- 94 :デフォルトの名無しさん (ワッチョイ 4a63-ZWRU):2020/02/28(金) 09:46:17 ID:JX0D/Sej0.net
- いつもいつも同じ流れでよく飽きないですねカスども
- 95 :デフォルトの名無しさん :2020/02/28(金) 14:13:28.76 ID:zv3KdV1x0.net
- シングルトン的なものが必要になったら、殆どはDIのインジェクションでなんとかするけど
コレクションの要素にインジェクションなんて鬱陶しいから普通のシングルトンやStatic Class使ったりするな
- 96 :デフォルトの名無しさん :2020/02/28(金) 16:17:34.85 ID:5jfHvjE1d.net
- シングルトンに依存するコレクションのエレメントとかちょっと悪夢だな。
- 97 :デフォルトの名無しさん :2020/03/01(日) 05:50:05.37 ID:wVHwYgLC0.net
- これが最新ぽいな
- 98 :デフォルトの名無しさん (ワッチョイ af17-DFeu):2020/03/01(日) 07:54:47 ID:cyJFDbBK0.net
- 42 デフォルトの名無しさん 2020/03/01(日) 05:43:23.78 ID:wVHwYgLC
なんだ?この糞スレ
と思ったら2016年だとwww
どこから引っ張り出したんだよ
- 99 :デフォルトの名無しさん (ワッチョイ 679b-DFeu):2020/03/02(月) 10:29:43 ID:NX3+Q9hq0.net
- C#というより.NET Framework全般の問題かもしれませんが・・・
ビルドした実行ファイルの拡張子を7zにして開けると
.rsrc(フォルダ)
.text
.reloc
というファイルが出てきます
このうち「.text」をエディタで開けると
「C:\Users\ユーザー名\source\repos\プロジェクト名\obj\Release\実行ファイル名.pdb」
の文字列がそのまま入っておりユーザー名まで見えてしまいます
プロジェクトのプロパティなど見てみましたが該当する文字列は設定されていませんでした
この文字列が入らないようにビルドするにはどうすれば良いでしょうか?
- 100 :デフォルトの名無しさん (ワッチョイ 1bda-himO):2020/03/02(月) 10:31:50 ID:++2P6Dav0.net
- mtawmg
- 101 :デフォルトの名無しさん :2020/03/02(月) 10:56:03.68 ID:dv6bLfIQ0.net
- プロジェクトのプロパティでデバッグ情報の出力を「なし」か「埋め込み」にする
なしの場合はデバッグが難しいから頒布する用のリリースビルドだけにした方が良い
- 102 :デフォルトの名無しさん :2020/03/02(月) 11:01:21.30 ID:glnmwhpKF.net
- ググっただけですぐ出て来たが
https://www.atmarkit.co.jp/fdotnet/dotnettips/831stoppdbfile/stoppdbfile.html
http://var.blog.jp/archives/70196817.html
https://qiita.com/lainzero/items/27681ddc96638e33758b
- 103 :デフォルトの名無しさん :2020/03/02(月) 11:30:46.56 ID:NX3+Q9hq0.net
- >>101-102
ありがとうございました。
pdbファイルがなんなのか理解できました
- 104 :デフォルトの名無しさん :2020/03/04(水) 15:33:24.81 ID:WNB6X6E30.net
- yield returnの挙動について知りたいのですが、
例えばHuman[]からある苗字のHumanインスタンスだけを列挙する場合、
yield returnで貰えば新たな配列は生成されないという理解で良いんでしょうか?(無駄なヒープの生成なども無いと)
- 105 :デフォルトの名無しさん :2020/03/04(水) 15:41:47.96 ID:VYRn8ATr0.net
- 配列は生成されないけどIEnumerable<T>/IEnumerator<T>の実体クラスのインスタンスは作られるよ
具体的にどんなクラスになるかはildasm.exeとかで確認してみるといいよ
- 106 :デフォルトの名無しさん (ワッチョイ ef4a-Xzyn):2020/03/04(水) 20:59:26 ID:i/lDlkx00.net
- var a = new int[10];
for(......){
......
}
for(......){
var a = new int[10];
......
}
配列変数の場合はどちらの書き方が正しいでしょうか?
下のほうはループを繰り返す毎に配列を宣言してるので無駄だと思うのですが
- 107 :デフォルトの名無しさん (ドコグロ MM4f-blPw):2020/03/04(水) 21:02:11 ID:O/qwuvY6M.net
- >>106
意味が違うからどっちが正しいもクソもない
- 108 :デフォルトの名無しさん (ワッチョイ efda-Lqe9):2020/03/04(水) 21:03:35 ID:nSjoZipw0.net
- ......の内容が大事だよなw
- 109 :デフォルトの名無しさん (ワッチョイ 4b35-odL1):2020/03/04(水) 21:18:09 ID:vFPRvz7l0.net
- >>106
どっちが正しいかは何をしたいかによる
- 110 :デフォルトの名無しさん (ワッチョイ 4b2d-hds7):2020/03/04(水) 22:58:57 ID:Mg+OXMHj0.net
- 始めたばっかの頃の自分を思い出すと、おそらく>>106がやりたいのはこれ
int[10] a;
for(......){
a = new int[10];
......
}
- 111 :デフォルトの名無しさん (ワッチョイ 8b63-UVo+):2020/03/04(水) 23:03:21 ID:w6hLhDKv0.net
- 全然違うと思う
- 112 :デフォルトの名無しさん (ワッチョイ 9fad-b9E5):2020/03/05(Thu) 02:53:17 ID:FOFXma0P0.net
- >>106
後者はループ処理毎にaが初期化されるが
前者はループ処理毎にaは初期化されない
って違いがあるので、バグが発生しにくいのは後者で
バグは発生しやすいけど効率がいいのが前者
前のループのaを使わないなら、どちらも正しいよ
- 113 :デフォルトの名無しさん (ワッチョイ 8b48-107Z):2020/03/05(Thu) 09:03:52 ID:Zalo0Xqn0.net
- for内部で毎回一時バッファが必要ならfor内に書くべきだけど、ループ枚に配列生成は高コストなのでstackalloc使って良いと思うけどな
unsafe for ()
{
var a = stackalloc int[10]; //配列サイズが[200000]ほど以上になるとスタックオーバーフローの恐れが出てくるので注意
a[0] = 123;
}
- 114 :デフォルトの名無しさん (ワッチョイ 1bad-Ff7g):2020/03/05(Thu) 09:55:29 ID:C+Zq+iEs0.net
- >>110
それ106と全く同じ事だよ
予め配列変数を用意しておいたところで参照型である配列の変数なんてあくまでポインタに過ぎず肝心の中身はnew毎に生成されるからコスト的には全く変わらない
- 115 :デフォルトの名無しさん (ワッチョイ 9f01-AjW4):2020/03/05(Thu) 10:13:49 ID:sz7+iaAj0.net
- 言語ではなくて設計のことなのですが、C#でデスクトップアプリを作っていて、canvasに描画する処理を書いてます
そこで、描画部分で状態の更新(例えばlabelで表示する値の計算)を一緒にやった方が負荷が減らせるなと思ったのですがこれは設計としていいのでしょうか?
描画部分は複雑になっていくので、そこにcanvasの描画に関係ない処理を持ってくるのはどうなのかと悩んでます
でも一連の処理で共通部分があるので出来る限り負荷を減らしたいです
canvasの描画とその他の更新でうまく分けた方がいいでしょうか
- 116 :デフォルトの名無しさん (アウアウウー Sa0f-blPw):2020/03/05(Thu) 10:16:15 ID:4EDBtik+a.net
- >>113
悪いけど、それは全く意味ないと思うよ
ループ内で配列を生成する必要があるとしたら、それを他の非同期なメソッドなどに渡していて毎回インスタンスを別にしなければならないケースだろう
stackallocだと領域が結局使い回されてしまうから、それでいいんだったら単純に最初にnewした配列をループ内で毎回クリアして使えばよい
- 117 :デフォルトの名無しさん (ドコグロ MM0f-blPw):2020/03/05(Thu) 10:28:10 ID:9nI/lMlHM.net
- >>115
描画処理は今の状態のスナップショットを画面に反映させるだけなんだろ?
そんなもん状態の更新処理と何をどう共有するんだよ
分けるかどうかは別にして、そんな頭がごっちゃになった状態で書かれたコードなんて俺は読みたくないな
- 118 :デフォルトの名無しさん :2020/03/05(木) 10:30:44.90 ID:e30M4A2z0.net
- >>116
ループ内で生成しないやり方と迷ってるってことはret時にもループ内でも他に渡す盤面は無いってことじゃないかな
なので最高のやり方はSpan<int> a = stackalloc int[10]として最初に確保をしてループ毎にa.Clear()
>>113のやり方も悪くは無いけど使いまわせるのに毎回stackallocするのは無駄
- 119 :デフォルトの名無しさん :2020/03/05(木) 11:02:10.43 ID:sz7+iaAj0.net
- >>117
すみません誤解を招く書き方でした
状態の更新ではなくviewの更新です
viewで表示する値を計算するのに一連の処理が必要ということです
改めて考えてみたら元のデータは頻繁に変わるものではないのでメモ化で対処できそうです
- 120 :デフォルトの名無しさん :2020/03/05(木) 15:17:30.80 ID:X7H8oXB10.net
- 自分で使う用のWindows用WinFormsくらいしか作らない俺もSpan利用したいんだけど、そろそろ.NetCore3.1インスコしてええの?
CoreのWinFormsは不完全みたいな事どっかで聞いたからもうかれこれ1年以上.Net Framework4.7.2しか使ってないんだけど
- 121 :デフォルトの名無しさん :2020/03/06(金) 12:20:46.76 ID:H9scC1320.net
- System.Memoryパッケージ入れれば、slow spanになるけど.NET FrameworkでもSpan<T>が使える
- 122 :デフォルトの名無しさん :2020/03/06(金) 12:24:09.85 ID:7SrrBNmuM.net
- SpanならnugetからSystem.Memoryを入れればNET47でも使えるんじゃ?
- 123 :デフォルトの名無しさん :2020/03/06(金) 12:24:46.59 ID:7SrrBNmuM.net
- あ、かぶった
- 124 :デフォルトの名無しさん (ワッチョイ 4f7c-kMfZ):2020/03/10(火) 13:54:33 ID: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 :デフォルトの名無しさん :2020/03/11(水) 20:14:38.79 ID:Atur+UVNM.net
- FormアプリケーションのGUIをそのままWebサイトにできますか?
- 126 :デフォルトの名無しさん :2020/03/11(水) 20:15:50.74 ID:JtvZFGdC0.net
- 無理
- 127 :デフォルトの名無しさん (ワイーワ2 FFca-cUsN):2020/03/12(Thu) 13:35:24 ID:MzPDqAwNF.net
- https://docs.microsoft.com/ja-jp/archive/msdn-magazine/2017/september/net-standard-demystifying-net-core-and-net-standard
- 128 :デフォルトの名無しさん :2020/03/12(木) 14:08:08.81 ID:jMpYX7Pla.net
- >>127
懐かしい話だな
.NET Standard はあろうことか 2.1 で .NET Framework を切り捨てたから、もはや .NET Standard には何の意味もなくなり事実上消滅したよ
- 129 :デフォルトの名無しさん (スップ Sd02-YgZJ):2020/03/12(Thu) 14:19:52 ID:GlTl0MmId.net
- まだ消滅してないよ
- 130 :デフォルトの名無しさん (ワッチョイ 51da-cUsN):2020/03/12(Thu) 14:40:04 ID:dkoVUBxw0.net
- どれがホント?
https://blog.ecbeing.tech/entry/2019/03/28/181956
https://blog.hiros-dot.net/?p=9086
- 131 :デフォルトの名無しさん :2020/03/12(木) 15:00:48.26 ID:jMpYX7Pla.net
- >>130
下の方は誤解を招く書き方(というか本人が理解してなさそう)だね
.NET5は.NET CoreとXamarinの新バージョンを含むが、.NET Frameworkは含まない
.NET Frameworkは4.xが最後のバージョンとなり、(Xamarinを除けば).NET Coreへ一本化される
- 132 :デフォルトの名無しさん :2020/03/12(木) 20:38:24.41 ID:RlMroztpr.net
- > Xamarin は、テクノロジー自体は、.NET Framework と C# を基盤としていますが、
> Mono というライブラリを使用します
- 133 :デフォルトの名無しさん (ドコグロ MM4a-Syvm):2020/03/12(Thu) 23:53:50 ID:jAjbL2IrM.net
- >>132
それは明確に間違いだね
Monoは元々MSとは無関係の会社による.NET Frameworkの非公式かつ独自な互換実装で、.NET Frameworkとはソースを共有していない
based on かなんかを誤訳したんじゃね
- 134 :デフォルトの名無しさん (ワッチョイ 0135-0jaE):2020/03/13(金) 00:04:41 ID:1UhKFURs0.net
- テクノロジーを基盤してるって書いてるだけじゃん
ライブラリがおかしい
- 135 :デフォルトの名無しさん (スフッ Sda2-Wi6o):2020/03/13(金) 07:54:41 ID:/kxy81/Ad.net
- >>133
今はだいぶ本家のを使ってるよ。Monoも。
本家がMITになったからね。
- 136 :デフォルトの名無しさん (アウアウウー Sac5-cOBK):2020/03/13(金) 12:12:59 ID:1Ll5zbJna.net
- 毎度のことだけど用語の定義のあいまいさからくる混乱だろうね
>>132の引用部分を書いた人は「NET FrameworkをVS2002とかの時代の意味で使ってるんでしょ。
当時は仮想OSみたいに言われてた
その定義だと.NET Coreも.NET Frameworkになっちゃうので(以下略
- 137 :デフォルトの名無しさん :2020/03/14(土) 03:14:07.89 ID:+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 :デフォルトの名無しさん :2020/03/14(土) 03:47:52.84 ID:eoDNI2O30.net
- こういう理由らしい
https://stackoverflow.com/questions/5884922/regex-match-startat-and-start-of-string
- 139 :デフォルトの名無しさん :2020/03/14(土) 03:55:38.88 ID:eoDNI2O30.net
- 第二引数は探索の開始位置を指定するのであって検索範囲をどうこうするためのもんじゃないってことかな?
でもその理屈だと二つ目がfalseである説明にならんし流し読みだから解釈間違ってるかもしれないわ
- 140 :デフォルトの名無しさん :2020/03/14(土) 04:35:36.35 ID:eoDNI2O30.net
- 139は間違いっぽいので忘れて
IsMatch("abc",0) → abcを探索
IsMatch("abc",1) → bcを探索
リンク先を見るに^は行頭を表すもんでbは行頭ではないのでfalse
aは探索外なので二つ目もfalseってことかな
https://docs.microsoft.com/en-us/dotnet/standard/base-types/anchors-in-regular-expressions
- 141 :デフォルトの名無しさん (アウアウウー Sac5-M7Q/):2020/03/14(土) 09:39:43 ID:S+o/zRAGa.net
- new Regex()するときにRegexOptions.Multilineを指定して『^』『$』の意味づけを変更・・・しても駄目そうだね
日本語のほうで
https://docs.microsoft.com/ja-jp/dotnet/standard/base-types/regular-expression-options?view=netframework-4.8#multiline-mode
を読んだけど、
あくまで『^』は入力文字列全体(>>137のなら"bc"ではなく"abc")の先頭、MultiLine指定時は\nを行区切りとした行頭についてのみマッチするんだろう
- 142 :137 (ワッチョイ 61dd-gN7l):2020/03/14(土) 11:29:21 ID:+KBSM6L30.net
- >>138-141
ありがとう!
俺だけではそれらの情報を見つけられなかったわ。
いったん \G を使用することで何とかなりました。
というか \G の仕様(影響範囲)もよくわからん。
最終のマッチってRegexのインスタンスに保存されるのかな?
そうだと思うけど、今一つ確証が持てない。
あと、 \A が正しいんじゃないか、って思いましたが、\Aは「文字列の先頭」でしかないんだね。
Singlelineの場合は^と同じみたい。
- 143 :デフォルトの名無しさん (ワッチョイ c201-ThK6):2020/03/17(火) 10:51:26 ID:phFjovqc0.net
- プログラムではなくライセンスについての質問なのですが、NAudioというライブラリを使いたくてプロジェクトに導入したのですがMs-PLライセンスとなっていて、この場合著作権表示等は具体的にどう表示すればいいのでしょうか。
著作権表示自体がいまいち分かりません。ライセンスの文書(LICENSE.txt等)とは別なのでしょうか。
調べているのですが具体的な表記方法が書かれている記事が無く分かりません。
ご教示お願いします。
- 144 :デフォルトの名無しさん (ワッチョイ 13b9-hdmr):2020/03/21(土) 13:43:45 ID:/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 :デフォルトの名無しさん :2020/03/21(土) 18:45:34.77 ID:qqrYKjlY0.net
- MyPropertyが本当に自動実装プロパティなら
そもそもフィールドでいいんでは?
- 146 :デフォルトの名無しさん (アウアウウー Sa5d-NT4g):2020/03/21(土) 19:30:58 ID:zN2aQcNta.net
- 最近のIDEは賢いから定義されてるけど使用されないことが明らかなプロパティやメソッドが見つかったら警告が出るようになってる
>>144のは文法等のお勉強でてきとうなソースを書いてるんだと思うけど、MyClass2なら
MyPropertyをpublicなプロパティにするか、MyPropertyを参照するような処理をちゃんと書けば警告解消するはず
ToString()あたりをオーバーライドして override string ToString() => MyProperty; とか書いてもいいかもね
- 147 :デフォルトの名無しさん :2020/03/21(土) 20:37:06.12 ID:/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 :デフォルトの名無しさん :2020/03/21(土) 20:37:42.93 ID:/FH0o/RH0.net
- >>146
レスありがとうございます。
おっしゃるとおりなのですが、MyProperty += x; で
MyProperty の get アクセサーが参照されていることに
ならないため困ってしまっています。
C# の文法的に、自動実装プロパティでなければ
int _MyProperty = 0;
int MyProperty { set => _MyProperty; }
のような書き方も許されているようなのですが、
MyClasss2 の MyProperty の定義をこのように書き換えると、
MyProperty += x;
のところでエラーが出てしまうのです。
- 149 :デフォルトの名無しさん :2020/03/21(土) 20:45:29.55 ID:rK+/4ZiL0.net
- 警告とエラーを混同しないで
+=オペレータがget使ってないだけでしょ
開発中で今後使う予定がありまだ未実装なら警告はスルーすればいい
- 150 :デフォルトの名無しさん :2020/03/21(土) 21:05:47.28 ID:zN2aQcNta.net
- いやだからIDEからは「結局MyPropertyってインクリメントで更新はしてるけどどこからも参照されてないんでしょ、無駄なんじゃない?」と怒られてるわけで
他のC#ソースなりXAMLなりでMyPropertyが参照されてればそのメッセージは出ないはずだけど
例示されてるソースであればMyPropertyだけでなくインクリメントする処理も意味のない無駄な処理だから削ればいいし
GUI側etcのソースがまだ書けてないのであれば中途半端な書きかけソースで警告が出るのは当たり前のお話
というかそもそもでいえば、VisualStudioの設定がデフォルトならそのメッセージは
「コンパイルエラー」でも「警告」でもないただの注意喚起なメッセージでしかないから開発にも実行にも一切支障がないので
とりあえずほっとけばいいと思うんだけど
- 151 :デフォルトの名無しさん (オッペケ Sr85-ED79):2020/03/22(日) 09:23:59 ID:knoRzRG7r.net
- classをpublicにと言う話ではなく?
- 152 :デフォルトの名無しさん (スッップ Sd33-Hfmd):2020/03/22(日) 15:10:18 ID:aFZi4Cdad.net
- >>147
MyPropatyをSetメソッドにして、インクリメント_MyPropaty+xを渡せばいいんじゃないの?
これでいいんでしょうか?って内容通りだけど単に値を入れるだけならフィールド直接やればって感じだけど追加作業あるならメソッドでやるのは普通だと思う
- 153 :デフォルトの名無しさん :2020/03/24(火) 22:53:25.92 ID:7FKkbPj60.net
- 読んでる入門書の練習問題にアクセサのGetNameメソッドで八文字以下の文字列が渡された場合だけname変数に代入するプログラムを書きなさい
というのがあるんですが、どうやって書けばいいのでしょうか?文字数を判定するプログラムは習ってないので困ってます
- 154 :デフォルトの名無しさん :2020/03/24(火) 22:59:57.52 ID:0+ccCJA90.net
- >>153
stringクラスのメンバーを見てみよう
- 155 :デフォルトの名無しさん :2020/03/24(火) 23:01:03.36 ID:Q5H6MOZK0.net
- >>153
文字数を判定=String.Lengthで判定
https://docs.microsoft.com/ja-jp/dotnet/api/system.string.length?view=netframework-4.8
入門書ならその前の部分の内容で全部答えられるものしか無いはず。そうじゃないのならその入門書は捨てた方がいい
- 156 :デフォルトの名無しさん :2020/03/24(火) 23:13:43.00 ID:7FKkbPj60.net
- >>155
ありがとうございます。とけました!
確かな力がつくC#超入門って本ですが見返してみても書いてないですね…
また良さげな本探してみます
- 157 :デフォルトの名無しさん (ワッチョイ d1da-InxD):2020/03/24(火) 23:41:48 ID:lhWkdEvF0.net
- 「猫でもわかる」のほうが良いかも
- 158 :デフォルトの名無しさん (ワッチョイ 29f1-dbH2):2020/03/24(火) 23:51:16 ID:hJYqJTPr0.net
- 猫に分かるわけがない、こんな難しいものを。
「ハゲでもわかる」だろ、どう考えても。
- 159 :デフォルトの名無しさん :2020/03/25(水) 04:47:11.72 ID:LvLtJ7JB0.net
- 猫は誰でもできるということを比喩的に表している
じゃあハゲは?
- 160 :デフォルトの名無しさん (ワッチョイ b1f1-Go5d):2020/03/25(水) 08:43:43 ID:nn3rUaIL0.net
- 能力の劣る者でもできる
このハゲー、と言われるような者でも
- 161 :デフォルトの名無しさん :2020/03/25(水) 09:09:57.70 ID:IkumKzuJM.net
- >>155
たまに「Stringのマニュアルを確認してどんなことができるか確認しておこう」みたいな初心者なめとんか的な項目があったりはする
たぶん説明するの面倒なのだと思う
- 162 :デフォルトの名無しさん (ワッチョイ 5561-Cd0d):2020/03/25(水) 10:06:03 ID:tUU69eV70.net
- >>153
てかなんでGetNameなんだ?SetNameじゃないの?
- 163 :デフォルトの名無しさん :2020/03/26(木) 00:40:52.54 ID:KtVIRudY0.net
- >>162
主観の違いかと思ったけど、確かにセットですね
- 164 :デフォルトの名無しさん :2020/03/27(金) 23:27:00.17 ID:MpMbbGem0.net
- プロポーショナル文字の場合に、画面上の文字の表示位置はどうやって求めるんでしょうか?
1文字ごとに(x,y)座標を計算して配列変数に記憶しておく、
文字を削除、挿入などして位置がずれたときにはすべて計算し直す
というような方法しか思いつきません
- 165 :デフォルトの名無しさん (アウアウウー Sacd-PYaq):2020/03/28(土) 00:41:06 ID:PEyzMklSa.net
- >>164
↓のサンプルコードみたいな話?やったことないから知らんけど
https://docs.microsoft.com/ja-jp/dotnet/api/system.drawing.graphics.measurecharacterranges
- 166 :デフォルトの名無しさん (ワッチョイ 764a-1K1t):2020/03/28(土) 01:33:04 ID:7wRTqyNf0.net
- そんな感じです
毎度毎度文字列の長さを測定するのもなあ〜と、ちょっと思ったもので質問しました
- 167 :デフォルトの名無しさん (ワッチョイ 0935-lv27):2020/03/28(土) 01:43:01 ID:ngUeRIaE0.net
- 削除・挿入した文字列のサイズを全体から足し引きする
- 168 :デフォルトの名無しさん :2020/03/28(土) 06:08:44.57 ID:k+10ZvFP0.net
- フォントは左右は良いけど上下に謎のスペースが入って扱いづらい。フォント毎に仕様が違うので厄介
- 169 :デフォルトの名無しさん (エムゾネ FFb2-nBi6):2020/03/28(土) 10:27:24 ID:juOTiA3TF.net
- オリンピックじゃないけどカーリング
- 170 :デフォルトの名無しさん :2020/03/28(土) 11:24:58.10 ID:+WXFsbEZ0.net
- >>164
基本は再描画時に行頭から行末まで1文字つずつカウントアップ
- 171 :デフォルトの名無しさん (ワッチョイ 92ad-B4Y8):2020/03/30(月) 07:25:35 ID:h/V/0o0/0.net
- http://www.wisdomsoft.jp/59.html
ここのコード1はなぜ8になるのでしょうか?
論理積の理屈はまあまあ分かったのですがビットがどうこうってのが分からないのですが
- 172 :デフォルトの名無しさん (ワッチョイ b5da-3LRk):2020/03/30(月) 07:29:34 ID:6/Nsoznj0.net
- 両方たっているのが1000bだから
- 173 :デフォルトの名無しさん (ワッチョイ 5ef2-Bt6E):2020/03/30(月) 07:32:55 ID:X05REbKS0.net
- >>171
2進数を理解したらわかるよ
- 174 :デフォルトの名無しさん :2020/03/30(月) 07:45:18.96 ID:h/V/0o0/0.net
- >>173
0cと0aを2進数に直してもなぜそうなるのかわからないのですが…
沼に嵌りそうだから後回しにしたほうがいいかな・・
- 175 :デフォルトの名無しさん :2020/03/30(月) 07:56:54.43 ID:yPZuudvza.net
- >>174
正しく2進数にできてないんじゃないか?いくつになると思ってる?
- 176 :デフォルトの名無しさん :2020/03/30(月) 08:01:46.25 ID:h/V/0o0/0.net
- >>175
1010と1100と思います
それで論理積で評価してtrueが帰ってくるとなぜ13になるのかわからないです
- 177 :デフォルトの名無しさん :2020/03/30(月) 08:04:27.51 ID: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 :デフォルトの名無しさん :2020/03/30(月) 08:13:24.87 ID:h/V/0o0/0.net
- >>177
かなり噛み砕いて説明ありがとうございます
・・・でもわからない;;^は排他的論理積の記号ですか?
2進数とビットをもっと勉強して出直してきます
- 179 :デフォルトの名無しさん :2020/03/30(月) 08:22:46.27 ID:aCqibAU/0.net
- あ、C#には累乗演算子ないか
2^3は「2の3乗」の意味です
Math.Pow(2, 3);
- 180 :デフォルトの名無しさん :2020/03/30(月) 08:23:27.68 ID:h/V/0o0/0.net
- >>177
ごめんなさい、理解できました
長々と付き合っていただきありがとうございました
- 181 :デフォルトの名無しさん :2020/03/30(月) 22:26:07.20 ID:fWO3XlZL0.net
- ほっこりした
- 182 :デフォルトの名無しさん :2020/03/31(火) 05:00:18.54 ID:8jxewuXM0.net
- ◯っこりした
- 183 :デフォルトの名無しさん :2020/03/31(火) 12:53:35.20 ID:fWUbK/Ahd.net
- マッコリした
- 184 :デフォルトの名無しさん (ワッチョイ 6924-0ih2):2020/03/31(火) 14:59:25 ID:zOJyTQkJ0.net
- どうでもいいんだけど二乗でわざわざMath.Powを使う人の狙いって何?
普通にx*xで良いじゃん
- 185 :デフォルトの名無しさん (アウウィフ FFcd-MKsy):2020/03/31(火) 15:02:22 ID:uDSFrRRVF.net
- i x i
- 186 :デフォルトの名無しさん (ワッチョイ 5561-Cd0d):2020/03/31(火) 15:05:29 ID:iZe8wtQ40.net
- 累乗であることを明確にできるんでMath.Powのほうがいいような気がするなあ。
- 187 :デフォルトの名無しさん (ワッチョイ 45ac-tCKN):2020/04/01(水) 00:45:48 ID:7LP+CGQA0.net
- >>185
かわいくてほっこりするからアリ
- 188 :デフォルトの名無しさん :2020/04/01(水) 03:52:03.60 ID:lVwFrbjs0.net
- あえてこじつけるなら仕様書通りの表現ができること
2乗の値をってなってるのが3乗の値に仕様変更された時差分で2が3に変わってる方がわかりやすい
- 189 :デフォルトの名無しさん :2020/04/01(水) 07:47:41.17 ID:MqGhAKfu0.net
- >>184
同じこと繰り返したくない。
変数名がクソ長くてよく似た名前のが存在してたらMathPowの方が安心できる。その程度だぜ。速度的なことは知らんけど。
- 190 :デフォルトの名無しさん :2020/04/01(水) 09:27:50.48 ID:jWoZ64tYM.net
- 実数ならMath.Pow使うけど整数ならx * xにするな
- 191 :デフォルトの名無しさん :2020/04/01(水) 10:40:40.89 ID: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 :デフォルトの名無しさん :2020/04/01(水) 11:03:28.91 ID: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 :デフォルトの名無しさん :2020/04/01(水) 17:09:27.69 ID:9jyTppa90.net
- Point型にDistanceメソッドつけといてくれたらええのになあ
- 194 :デフォルトの名無しさん :2020/04/01(水) 17:11:21.84 ID:0oGZrVNR0.net
- 点に距離なんて無いだろうに
- 195 :デフォルトの名無しさん (ワッチョイ 851d-6nIr):2020/04/01(水) 18:49:00 ID:60SS71wY0.net
- YouTuberは「最強の職業」である理由。
https://www.youtube.com/watch?v=XjV3Nb0-hgA
【事例付き】YouTuberは最強の副業である件について。
https://www.youtube.com/watch?v=wB8hNuNVoIw&t=267s
【初心者向け】YouTubeの始め方・稼ぎ方を徹底解説!
https://www.youtube.com/watch?v=YEw-a8qlADM
「YouTubeなんていつか稼げなくなる」という主張を論破する。
https://www.youtube.com/watch?v=VatNILApW4U
収益化から丸1年!YouTubeでいくら稼いだか公開。
https://www.youtube.com/watch?v=-zQxuQqZ5eA&t=103s
その動画で月商○○万!? YouTubeで稼ぐ裏技的アプローチ。
https://www.youtube.com/watch?v=7I4APU_6i9o&t=433s
【貧者の工夫で戦え】ガラケーだっていい。YouTube始めるのにパソコンはいらない!
https://www.youtube.com/watch?v=jYdWfjjzD7Y
【第一回】SNS、YouTube、ブログで稼ぐ方法を、丁寧に解説します!
https://www.youtube.com/watch?v=erNiLOncDnY
- 196 :デフォルトの名無しさん (ワイーワ2 FF93-Wy2p):2020/04/01(水) 18:53:16 ID:86v82W0VF.net
- System.Drawing Point Distance なし
System.Windows Point Distance なし
Xamarin.Forms Point Distance あり!!!
- 197 :デフォルトの名無しさん :2020/04/01(水) 19:50:46.55 ID:ULM1+KSpa.net
- 描画面上の距離が必要になるケースってあんまりないような気はするね。
直交座標上の点を表すstructがあってそっちに付いてるなら分からんでもない。
.NETのライブラリって数学の名前空間がないんだよな。
MathってSystem直下のstaticクラスになってて、今となっては疑問を感じる設計だよね
- 198 :デフォルトの名無しさん :2020/04/01(水) 19:51:14.57 ID:o39i6dw+0.net
- DistanceよりsqrMagnitudeの方が多用する
- 199 :デフォルトの名無しさん :2020/04/01(水) 20:15:30.50 ID:2fyvFTga0.net
- 割と知名度の低いSystem.Numerics
- 200 :デフォルトの名無しさん :2020/04/02(木) 06:04:40.26 ID:OVS0fpTc0.net
- System.Numericsってなんだと思ってググったら、存在知らずにだいぶ前にこれと似たようなの(しかも劣化コピー)自作したぞ。
今ひどい黒歴史が出来たわ・・・・・
- 201 :193 :2020/04/02(木) 06:58:15.83 ID:JxZO1Jli0.net
- >>196
あるのかぁぁぁぁ!!!!!!
Xamarinてことはスマホアプリか。UI関係で使うんかな?
- 202 :デフォルトの名無しさん (ドコグロ MMe1-qghl):2020/04/03(金) 09:37:19 ID:cBUAwFsBM.net
- XamarinがMSに買収される前からあるんだろ?
零細企業のアホ社員がまともなコードレビューも受けないままリリースしちゃったんだろうな
- 203 :デフォルトの名無しさん (ワッチョイ 8dda-fwpz):2020/04/03(金) 09:38:38 ID:lfI6G99C0.net
- 人脈が無いと使えないって言ってるでしょうに
- 204 :デフォルトの名無しさん (エムゾネ FF43-8H9x):2020/04/03(金) 14:53:19 ID:VVxcL9MvF.net
- ちょまどさんがきっとなんとかしてくれる
- 205 :デフォルトの名無しさん (ワッチョイ 4d61-sbZV):2020/04/03(金) 17:02:10 ID:UoNKEVCn0.net
- WinForms で、MDI の場合、子フォームのメニューは親フォームにマージされるようですが、この動作を変更して、マージせずに子フォームのメニューバーの位置に直接メニューを表示することは可能でしょうか?
可能な場合、どうすればできますか?
- 206 :デフォルトの名無しさん (ワッチョイ 4b7b-Teqc):2020/04/03(金) 17:11:49 ID:blY/nayW0.net
- >>205
https://dobon.net/vb/dotnet/form/mdiapplication.html#section5
- 207 :デフォルトの名無しさん (ワッチョイ 0533-tDlu):2020/04/03(金) 17:26:05 ID:j3QBAl3N0.net
- >>205
子フォームのそれぞれにメニューバーが欲しいってこと?
すごく邪魔そうだけど…
- 208 :デフォルトの名無しさん (エムゾネ FF43-8H9x):2020/04/03(金) 17:44:55 ID:VVxcL9MvF.net
- >>205
SDI
- 209 :デフォルトの名無しさん :2020/04/03(金) 18:00:55.95 ID:UoNKEVCn0.net
- >>207
そうです。
子フォームも親フォームと同様にタイトルバーの下に独自のメニューバーを持たせたい場合の話です。
- 210 :デフォルトの名無しさん :2020/04/03(金) 18:01:25.86 ID:UoNKEVCn0.net
- >>208
SDIではなく、複数の子ウィンドウを作りたいのです。
- 211 :デフォルトの名無しさん (ワッチョイ 8dda-fwpz):2020/04/03(金) 18:17:58 ID:lfI6G99C0.net
- SetParentで養子に出してしまえ
- 212 :デフォルトの名無しさん (ワッチョイ 4d61-sbZV):2020/04/03(金) 18:25:08 ID:UoNKEVCn0.net
- >>206
読んだんですが、該当する箇所は無いようです。
有れば教えてください。
- 213 :デフォルトの名無しさん (アウアウウー Sae9-1s42):2020/04/03(金) 18:30:10 ID:ytDWP9uSa.net
- >>209
親のMenuStripのAllowMerge = falseだね
デフォでマージされないはずだと思ってたけど勘違いだった
- 214 :デフォルトの名無しさん (ワッチョイ 4d61-sbZV):2020/04/03(金) 18:40:10 ID:UoNKEVCn0.net
- >>213
親Formの AllowMerge を falseにするということは、どんなMDIに対しても
影響が及ぼされてしまうんですね。
一部のMDI Chileだけは個別にメニュー付きで、他のMDI Childは、親のメニューにMerge、という具合には出来ないんですか。
- 215 :デフォルトの名無しさん (エムゾネ FF43-8H9x):2020/04/03(金) 18:46:29 ID:VVxcL9MvF.net
- そこまでこだわるなら floating menu 造って子ウィンドウに載せろ
- 216 :デフォルトの名無しさん (アウアウウー Sae9-1s42):2020/04/03(金) 18:51:31 ID:ytDWP9uSa.net
- >>214
そういうヘンテコなUIはどうかと思うけど、
マージしたくない子のMenuStripのAllowMerge = falseでいけるみたい
っていうかこれぐらい自分で試そうよw
- 217 :デフォルトの名無しさん (ワッチョイ 4d61-sbZV):2020/04/03(金) 19:07:26 ID:UoNKEVCn0.net
- >>211
MDI Child Frame(?)の子として中に別の Window を入れるのでしょうか?
- 218 :デフォルトの名無しさん :2020/04/04(土) 00:11:51.82 ID:8ZllyE370.net
- いくら初心者向けのスレッドっても少しは自分で試してみなよ
- 219 :デフォルトの名無しさん :2020/04/04(土) 12:59:15.20 ID:PIJg3gqB0.net
- コードを変更しても反映されない
いきなり原因不明のエラーが出ると思ったら
Form1.Designer.csの中で勝手にプロパティ初期化してた
- 220 :デフォルトの名無しさん :2020/04/04(土) 17:22:20.79 ID:9nDXuupl0.net
- VS2019のメニューを見ていると、MFCと同様に、無効な項目は
グレイ表示されています。
MFCの場合は、Merge方式ではない代わりに、ActiveなChildWndが
ハンドラを実装していない場合には自動的にグレイ表示になっていたのですが、
WinFormsの場合は、どうやれば良いのでしょうか?
- 221 :デフォルトの名無しさん (アウアウウー Sae9-1s42):2020/04/04(土) 19:04:00 ID:UFbKis4ca.net
- >>220
1年前にも似たような質問があった気が。
MFCは知らないのであれだけど、多分MFCに近いやり方は用意されてないかと。
結果的に同じようなUIをなるべく簡単に実現するには、1年前にも書いたけど
MDI子に共通のメニューを持つFormをまず作って、
個々のMDI子はそれを継承するのがいいんじゃないかなあと
- 222 :デフォルトの名無しさん (ワッチョイ 2361-sbZV):2020/04/04(土) 19:30:33 ID:C11LX2Y60.net
- >>221
それで、ハンドラを実装したくない継承クラスでは、その項目を disable にするという
わけですか。
- 223 :デフォルトの名無しさん :2020/04/04(土) 19:59:31.83 ID:UFbKis4ca.net
- そうそう。
継承後のフォームでもデザイナでコントロールのプロパティーの値を変更というか上書きできたはず
ついでに、MenuStripのVisible = falseにしておけば親にマージされている時以外メニューは表示されないみたい
- 224 :デフォルトの名無しさん :2020/04/06(月) 03:12:51.01 ID:O7BKGhOT0.net
- ビル・ゲイツが私財でコロナのワクチン作る。
c# プログラマに一番最初にワクチンを供給してくれるとおもう。
安全性の確認できないワクチンや薬品をc#プログラマにぶち込めば開発効率が上がる。
人体実験を断ったら、msdn、マイクロソフトid を停止させるとかして、Windows 利用不可にすればいい。
c#コンピューターオタクは断ると当面お金を稼げなくなるから喜んで実験に参加してもらえるはず。
まと、コンピューターオタクには人権はないので、実験により貴重な人命が損なわれることもない。
- 225 :デフォルトの名無しさん :2020/04/06(月) 07:14:18.13 ID:GDVBsc7B0.net
- MSが作るワクチンなんてバグだらけになってそうでこわひ
- 226 :デフォルトの名無しさん :2020/04/06(月) 08:02:15.03 ID:m5eAFRE+M.net
- ワロタ
- 227 :デフォルトの名無しさん (ワッチョイ e501-fwpz):2020/04/06(月) 09:39:40 ID:78vqHF1U0.net
- 弱毒化ミスりました。てへ
- 228 :デフォルトの名無しさん (ワッチョイ 2310-CuPJ):2020/04/06(月) 09:46:00 ID:xLTmiL/Q0.net
- そんなミスされたらゲイツの顔がブルースクリーンになっちゃう
- 229 :デフォルトの名無しさん :2020/04/06(月) 10:17:13.45 ID:TxMJ3ToxF.net
- >>224
先生そういう宗教的な分野はMacとかSwiftとかの方が適していると思います
- 230 :デフォルトの名無しさん :2020/04/06(月) 11:37:10.89 ID:O7BKGhOT0.net
- >>225
c# プログラマにベータ版ワクチンをインストールしてもらいデバッグするんですよ。
バグのないワクチンとソフトウェアはありません。
Macユーザーは完成後のワクチンは提供対象外。
だから、MacBook とかに Windows をインストールしてる人は、デバッグと実験の対象になりますが、完成したワクチンの提供は対象外となります。
- 231 :デフォルトの名無しさん (ワッチョイ b501-bVUD):2020/04/07(火) 17:59:28 ID:Fz3MtvZy0.net
- visualstudioで
フォームアプリに追加したクラスライブラリにclass1.csとclass2,csがあるんですけど
class2の方にコントロールを継承してもツールボックスに表示されないのはなぜでしょうか
class1だと表示されました
- 232 :デフォルトの名無しさん (ワッチョイ 55b0-CuPJ):2020/04/07(火) 18:09:18 ID:haJ3Gg0r0.net
- GoogleドライブにファイルをアップをしたくてGoogleの下のサンプルを
参考に動かしてみたのですが、全くアップできず何が悪いのかさっぱりです・・・
https://developers.google.com/drive/api/v3/quickstart/dotnet
https://developers.google.com/drive/api/v3/manage-uploads
以下がコードです。
https://dotnetfiddle.net/4z2iZ4
ファイルのリストは、取得できているので認証はできていると思うのですが
「var file = request.ResponseBody」の行で、fileがnullとなっており
次の行でエラーが発生しています。
どなかたお助けください。よろしくお願いいたします。
- 233 :デフォルトの名無しさん (ワッチョイ 4b7b-Teqc):2020/04/07(火) 18:10:40 ID:Zxvg5mpZ0.net
- >>231
追加部分をビルドしてもツールボックスに表示されないのなら該当するVSのスレで聞いてくれ
- 234 :デフォルトの名無しさん (ワッチョイ b501-bVUD):2020/04/07(火) 18:23:44 ID:Fz3MtvZy0.net
- >>233
VSスレ行ってきます
- 235 :デフォルトの名無しさん :2020/04/07(火) 18:42:39.03 ID:G5F9VLMpF.net
- >>232
var driveService = new DriveService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "MyApplicationName",
});
使ってない?
- 236 :デフォルトの名無しさん :2020/04/07(火) 18:55:57.94 ID:G5F9VLMpF.net
- あとは
var fileMetadata = new Google.Apis.Drive.v3.Data.File(){
Name="test.png",MimeType="image/png",};
にしてみるとか
他にはstreamがbinaryになってるかどうかとか
https://gist.github.com/LindaLawton/ead22e44bf88c3afa60753de0445eddf
この人もnullって言ってるな
- 237 :デフォルトの名無しさん :2020/04/07(火) 18:58:19.21 ID:G5F9VLMpF.net
- さすがstackoverflow
https://stackoverflow.com/questions/45662041/null-response-creating-file-using-google-drive-net-api
- 238 :デフォルトの名無しさん :2020/04/07(火) 19:00:30.98 ID:G5F9VLMpF.net
- っていうか
DriveService.Scope.DriveReadonly
じゃだめな気がする
- 239 :デフォルトの名無しさん :2020/04/07(火) 19:02:03.78 ID:haJ3Gg0r0.net
- >>235
すみません。そこ使っていません。コメントアウトしました。
51行目でDriveServiceを宣言しているので、そこでの宣言は不要でした。
- 240 :デフォルトの名無しさん :2020/04/07(火) 19:42:25.67 ID:haJ3Gg0r0.net
- >>237
>>238
出来ました!ありがとうございます!!
なるほど!一度作ったjson消さないと駄目なんですね。
本当にありがとうございました!!
- 241 :デフォルトの名無しさん (ワッチョイ df01-aZ/i):2020/04/08(水) 18:42:37 ID:4ZoNAvx+0.net
- バルクコピーはdatatableだけに対応なのでしょうか?
ググってもジェネリックで使う記事が見当たらないので無理なのかなという気がしていますが
- 242 :デフォルトの名無しさん (ワッチョイ 622c-N9MB):2020/04/08(水) 21:01:32 ID:SnWF1IxV0.net
- SqlBulkCopyの話ならWriteToServerのオーバーロード見る限り
IDataReader頑張って実装すれば何とかなりそう
- 243 :デフォルトの名無しさん (ワッチョイ 06e3-AglQ):2020/04/08(水) 22:55:22 ID:t+YdRhnM0.net
- ググればToDataReaderの拡張メソッドヒットするからそれ参考に実装すればいいんじゃね
俺社環でライブラリの拡張メソッド禁止されているから、IDataReaderで作ったけど
- 244 :デフォルトの名無しさん :2020/04/09(木) 07:09:54.80 ID:9rfBAHbp0.net
- >>243
知らない知識なので参考にさせて頂きます
しかしバルクコピーのメソッドがdatatableという古い技術で実装させる時点で、そもそもバルクコピー自体が古い技術で別の最新技術があるのかなと疑っております
色々な角度で調べてみるつもりです
- 245 :デフォルトの名無しさん :2020/04/09(木) 07:57:03.98 ID:WaI3ZH+Vr.net
- datatableってもう古いの?
- 246 :デフォルトの名無しさん :2020/04/09(木) 08:44:51.87 ID:lA8JDzIo0.net
- win10において
・ネットワークとインターネット設定→プロキシのセットアップスクリプトを使う設定のON/OFF切り替え
・ネットワーク接続のインターネットプロトコルバージョン4のプロパティの
IPアドレスを自動的に取得すると、次のIPアドレスを使うの切り替えと入力
DNSサーバー・・・と次のDNSサーバーのアドレスを使うの切り替えと入力
これをC#アプリで実現できますか?どのようなクラスを使えばいいでしょうか?
- 247 :デフォルトの名無しさん :2020/04/09(木) 09:25:00.65 ID:x5VgstST0.net
- レジストリいじれば設定変更できるやつだろ
ようはwin32だろ、それくらいまでは調べたよな?
- 248 :デフォルトの名無しさん :2020/04/09(木) 10:21:54.03 ID:uYq8FGtT0.net
- IPアドレスの変更の類はnetshコマンドをProcessクラスで使うのが一番手っ取り早いと思う
- 249 :デフォルトの名無しさん :2020/04/09(木) 11:12:18.01 ID:x5VgstST0.net
- ローカルじゃなければProcess使うかなあ
- 250 :デフォルトの名無しさん :2020/04/09(木) 11:17:42.26 ID:MvrijcPz0.net
- 目的にもよるんだろうけど、PowerShellでスクリプト書く方が早そうな予感
完全にスレチになるけど
- 251 :デフォルトの名無しさん :2020/04/09(木) 11:21:39.40 ID:wyC9Ec3D0.net
- 内部でPowerShellスクリプトを走らせるC#プログラムを作る
- 252 :デフォルトの名無しさん :2020/04/09(木) 12:41:32.88 ID:kpg/tOgGF.net
- >>248
ほんそれ +1
- 253 :デフォルトの名無しさん :2020/04/09(木) 12:48:40.23 ID:XKMcLRnY0.net
- x ほんそれ
o ほんとそれ
正しい日本語で
- 254 :デフォルトの名無しさん :2020/04/09(木) 14:07:27.20 ID:wyC9Ec3D0.net
- 日本語を母国語としない人ほど
正しくない日本語で困るのです
- 255 :デフォルトの名無しさん (ワッチョイ d701-jz5X):2020/04/09(Thu) 21:32:00 ID:ezz+hw670.net
- ハンソロ
- 256 :デフォルトの名無しさん :2020/04/10(金) 07:07:24.38 ID:xmb7c5Fr0.net
- >>245
新規開発でdatatable使ってたらうわってなる
- 257 :デフォルトの名無しさん :2020/04/10(金) 08:53:16.36 ID:9rsnwyfyM.net
- >>256
今は何ですか?
- 258 :デフォルトの名無しさん :2020/04/10(金) 08:53:52.31 ID:GJl9p4h50.net
- 型付きDataSet
- 259 :デフォルトの名無しさん :2020/04/10(金) 09:00:25.56 ID:3BYzeKcKM.net
- >>245
もうEFかDapperでええやろ
- 260 :245 :2020/04/10(金) 09:43:04.90 ID:Rte1PrgOr.net
- あーそういや気付けばdapperばっか使ってたわ
あいえにゅめにゃんにゃんが便利やしなあ
- 261 :デフォルトの名無しさん :2020/04/10(金) 10:18:31.70 ID:XzeHNtat0.net
- DBとは無関係に
動的列、フィルタ&ソートしたまま行追加、みたいなのが必要な時はDataTable使ってる
- 262 :デフォルトの名無しさん :2020/04/10(金) 11:00:45.18 ID:nz1tlAhXF.net
- DataTableでうわぁっってなるひとはJSONでくぇぇっってならんのまじで?
- 263 :245 :2020/04/10(金) 11:58:55.10 ID:dIu9zrlt0.net
- jitとか使ってそう
- 264 :デフォルトの名無しさん :2020/04/10(金) 12:04:16.89 ID:sXssV4F30.net
- DataTableは2次元
JSONは3次元
- 265 :デフォルトの名無しさん (ワッチョイ 4e2f-5WFu):2020/04/10(金) 13:26:59 ID:saZPvfHU0.net
- EFもDapperも変更追跡がなぁ
- 266 :デフォルトの名無しさん :2020/04/10(金) 13:54:32.33 ID:/e8vDB+E0.net
- >>265
Dapperにそんなもんあったっけ?
- 267 :デフォルトの名無しさん :2020/04/10(金) 14:10:46.01 ID:saZPvfHU0.net
- >>266
ないよ
DataSetにはあるんだよ
- 268 :デフォルトの名無しさん :2020/04/10(金) 14:29:32.62 ID:/e8vDB+E0.net
- EFにはあるやろ
- 269 :デフォルトの名無しさん :2020/04/10(金) 15:28:01.76 ID:SuSUfgJ80.net
- Chartコントロールで横のスクロールバーを表示させる方法を教えてください。
サンプルプログラムは↓のをほぼそのまま使いました。( i < 5のところを i < 500に変えて数だけ増やしています)
チャートは普通に表示されるのですが、いろいろ探してもスクロールバーの出し方が全然わかりません。
https://qiita.com/Aki_mintproject/items/02e98173eb8eee74fc5b
- 270 :デフォルトの名無しさん :2020/04/10(金) 16:05:22.34 ID:eaxyjA8iF.net
- https://stackoverrun.com/ja/q/1249648
- 271 :デフォルトの名無しさん :2020/04/10(金) 16:06:49.77 ID:eaxyjA8iF.net
- https://docs.grapecity.com/help/c1/aspnet/webchart/addscrollbartothexax.html
- 272 :デフォルトの名無しさん (ワッチョイ 4e2f-5WFu):2020/04/10(金) 19:04:23 ID:saZPvfHU0.net
- >>268
ここで言ってるのはモデルが自分自身の変更内容を保持する機能な
EFにもないよ
もちろんモデルに自分で作りこめば可能だけどな
- 273 :デフォルトの名無しさん :2020/04/10(金) 21:43:50.98 ID:Q8afigXi0.net
- DatasetやTableのoriginalが取れたりrejectでロールパック出来たりするのは確かに便利
- 274 :デフォルトの名無しさん (ワッチョイ d701-jz5X):2020/04/10(金) 22:14:18 ID:phkDJesv0.net
- トランザクションログ
- 275 :デフォルトの名無しさん :2020/04/11(土) 02:58:17.93 ID:EYr99YyX0.net
- よぉ〜しよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよし
- 276 :デフォルトの名無しさん :2020/04/11(土) 13:19:24.89 ID:n/kHMKTa0.net
- >>270
ありがとうございます。解決しました
- 277 :デフォルトの名無しさん :2020/04/12(日) 16:27:59.95 ID:WBJoN6ah0.net
- if(条件A && !条件B){}
みたいなことをしたいのですが、&&と!をまとめてきれいに書く方法はありますか?
- 278 :デフォルトの名無しさん :2020/04/12(日) 16:48:42.14 ID:insvI+xF0.net
- var 条件C = 条件A && !条件B;
if(条件C){}
- 279 :デフォルトの名無しさん :2020/04/12(日) 18:02:02.30 ID:Vvo4XdlE0.net
- クラスや関数にする
設計を見直す
あーりーりたーんを心がける
- 280 :デフォルトの名無しさん :2020/04/12(日) 18:08:22.86 ID:sgzIx9p/0.net
- >>277
そんなものはない
C# 演算子
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/operators/
- 281 :デフォルトの名無しさん :2020/04/12(日) 18:11:50.67 ID:7/OoXgJO0.net
- >>277
関数にする
- 282 :デフォルトの名無しさん :2020/04/12(日) 19:13:16.89 ID:tx1YNXXn0.net
- if (foo.IsEnabled && !bar.IsEnabled) を
if (foo.IsEnabled && bar.IsDisabled) にすることはある
単語の頭につけるエクスクラメーションマークは
見落としやすいから可読性がやや低い
>>278のパターンで変数にすることはあんまりないけど関数化するのもよくやる
- 283 :デフォルトの名無しさん :2020/04/12(日) 19:22:29.59 ID:xeq/pDNWa.net
- >>277
おそらくそのまんまが一番きれいで見やすいぞ。
条件が長い式なら>>278みたいに一旦、適切な命名の変数に入れるのがいいと思う。
- 284 :デフォルトの名無しさん (ワッチョイ c62d-kdbN):2020/04/12(日) 19:43:51 ID:WBJoN6ah0.net
- 一発で書けるのかなと、すごく疑問に思ってたよ
ありがとう!
- 285 :デフォルトの名無しさん (アウアウウー Sabb-KL7n):2020/04/12(日) 21:05:32 ID: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):2020/04/12(日) 21:27:27 ID:JCmsoVoe0.net
- XORでいいんだったら^一個で済むけど違うよな
- 287 :デフォルトの名無しさん (ワッチョイ 622c-N9MB):2020/04/12(日) 21:57:13 ID:NV9JxSja0.net
- Not演算子が見辛いから関数に置き換える
ぐらいでいい気はする
- 288 :デフォルトの名無しさん :2020/04/12(日) 23:13:55.75 ID:PHqFJcwka.net
- >>285
1つ目は短絡評価の場合の動作が異なるから等価な式になってないし、2つ目の式は元の式より見辛くなって無意味だろう
- 289 :デフォルトの名無しさん (ワッチョイ cb5f-zfCe):2020/04/13(月) 10:34:31 ID:xWnIwwwl0.net
- >>286
カルノー図描いて観ろ
- 290 :デフォルトの名無しさん (ワッチョイ bbda-P/Zs):2020/04/13(月) 11:05:23 ID:DkcwYYbx0.net
- それでわかるのー
ベイチ図もありだね
https://qiita.com/YankeeDeltaBravo225/items/48000cdf01dde7698930
- 291 :デフォルトの名無しさん :2020/04/13(月) 14:35:31.90 ID:6KK4qS560.net
- てかそんな条件がパット見でわからんくなるなら、根本的にそこにいたる道筋がおかしいと思うよ
- 292 :デフォルトの名無しさん :2020/04/13(月) 17:03:53.08 ID:wlUJ1QGb0.net
- SSH.net使った事ある人います?
フォワードポイント設定後、Startしてプログラムは通ってるんですけど、なぜかポートが開かないので困ってます
RloginというフリーのSShソフト使うと同じポートが開くので、SSH.net側かVS側が原因と考えてます
ネットの先人たちの知恵を拝見して同じようにしてるんですけど、なぜか上手くいきません
開発環境
VS2017
Nugetより最新のSSH.netを入れてます
netstatコマンドでポートの確認したら、192.168.〜の所が開かず、[::]の所が開いてるようです
これはなんなんでしょう?
- 293 :デフォルトの名無しさん (ワッチョイ 17ad-qv0W):2020/04/13(月) 17:14:22 ID:Szw9E2890.net
- >>292
ポートじゃなくてIPどうなってんの?
見た感じv6が開いてそうな感じだけど。
- 294 :デフォルトの名無しさん (ワッチョイ ebb2-zja/):2020/04/13(月) 17:18:05 ID:ujcK/XL20.net
- ポートフォアード開始してる?ステップインで状態とエラーメッセージ追えば理由なんとなくわかるんじゃね?
- 295 :デフォルトの名無しさん (ワッチョイ 6207-O/Sq):2020/04/13(月) 17:41:05 ID:wlUJ1QGb0.net
- >>293
>>294
返信ありがとうございます!
>>293さんのおっしゃる通りv6が開いてました
フリーソフトは両方開けてくれてたので、そこで勘違いしてました
こんな簡単な事でスレ汚してすいませんでした
ありがとうございました
- 296 :デフォルトの名無しさん (ワッチョイ 36eb-AglQ):2020/04/13(月) 19:23:38 ID:o+L/gyE50.net
- 拡張メソッドがあるのに、拡張プロパティなどが無いのは何故でしょう?
多くの日本語解説サイトで DirectoryInfoではなくDirectoryを、EnumerateFilesでなくGetFilesを使ってるのは何故でしょう?
(対応していないバージョンのC#を利用する人も、その方が高速・妥当なコードも稀だと思うのですが…)
- 297 :デフォルトの名無しさん :2020/04/13(月) 19:55:51.75 ID:i5ardRu40.net
- >>296
> 拡張メソッドがあるのに、拡張プロパティなどが無いのは何故でしょう?
Why No Extension Properties?
https://blogs.msdn.microsoft.com/ericlippert/2009/10/05/why-no-extension-properties/
> 多くの日本語解説サイトで
解説を書いてるヤツらに聞け
- 298 :デフォルトの名無しさん (ワッチョイ 622c-N9MB):2020/04/13(月) 20:03:19 ID:Bv/vlgUb0.net
- 拡張プロパティの類はC#10かもうちょい先ぐらいで追加されそう
https://ufcpp.net/blog/2018/7/pickuproslyn0714/
- 299 :デフォルトの名無しさん (ドコグロ MM7a-juGi):2020/04/13(月) 20:08:08 ID:Wzp4v7WxM.net
- >>298
最悪の提案だな
言語にこういう横断的関心事を入れられるようになるとだいたい無茶苦茶になるから、絶対にやめてほしい
- 300 :デフォルトの名無しさん (ワッチョイ 36eb-AglQ):2020/04/13(月) 20:26:56 ID:o+L/gyE50.net
- >>297,298
なるほど 確かにC#3.0に並んでるものと比べたら、優先度低くても全然不思議じゃないですね
将来的な実装を心待ちにしておきます ありがとう!
開発チームの内情というか現実的な部分の説明が面白かったw
>>299
言われてみれば、強力な反面 把握し辛い奇想天外なクソコードも書きやすくなりそうですね
- 301 :デフォルトの名無しさん (ワッチョイ 0b17-AglQ):2020/04/13(月) 20:49:56 ID:4T6PL/Gc0.net
- >>298
リフレクション使うとどんな挙動になるんだろ
- 302 :デフォルトの名無しさん :2020/04/13(月) 21:10:08.00 ID:Bv/vlgUb0.net
- >>301
今の拡張メソッドと特に変わらんのじゃない?
>>299
ちなみに言語にこういうのを入れて滅茶苦茶になった言語ってどんなのがある?
どんな感じに滅茶苦茶になったのかな
- 303 :デフォルトの名無しさん :2020/04/13(月) 21:18:16.05 ID:VqvNVGMOa.net
- >>302
そういう失敗例ならScalaでも見てみたら
- 304 :デフォルトの名無しさん :2020/04/13(月) 23:30:22.44 ID:IBaPMQxT0.net
- Taskとasync/awaitの使い方について質問です
await Task.Delay(100);
と
task.Wait();
を組み合わせるとデッドロックすると色々なページで書かれていますが
試したらデッドロックしませんでした
https://ideone.com/d6BWCC
ConfigureAwaitもよく分かっていません(コンテキストとかマーシャリングとかも・・・)
https://docs.microsoft.com/ja-jp/dotnet/api/system.threading.tasks.task.configureawait?view=netframework-4.8
なぜデッドロックしなかったのか教えてください
- 305 :デフォルトの名無しさん :2020/04/13(月) 23:33:06.25 ID:LODcFAHq0.net
- >>304
guiでWaitメソッドを使ってみて
- 306 :304 (ワッチョイ 6233-AglQ):2020/04/14(火) 00:04:17 ID:wwnZT3mo0.net
- WPFで適当なボタン作ってクリックイベント内で同じようなことをしたらフリーズしました
GUIじゃなければ起きない、とかでしょうか
CUIだとフリーズせず実行できてしまいます
- 307 :デフォルトの名無しさん (ワッチョイ 8eda-KRXG):2020/04/14(火) 02:23:36 ID: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):2020/04/14(火) 09:01:56 ID: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):2020/04/14(火) 11:04:24 ID:27IsOs6K0.net
- WinformsやWPFは各々フレームワークのコンポーネントの初回呼び出しで
それぞれ専用の同期コンテキストを自動で現在のスレッドに設定して
await 式から自動生成されたコードで現在の同期コンテキストのSendやPostを呼び出してるって割と単純な話だわよ
- 310 :デフォルトの名無しさん :2020/04/14(火) 21:47:37.07 ID:kOEIvzYK0.net
- 質問失礼致します。
ttps://xr-hub.com/archives/20326
の2番目のサンプルコード「Person.cs」に
public Person(string name, Job job)
という行があるのですが、これは関数ですか?
publicの後の型やvoidを省略した時、どういう扱いになっているのでしょうか?
(暗黙的にvoidなど)
初歩的すぎる質問ですが知恵をお借し頂ければと思います。
よろしくお願い致します。
- 311 :デフォルトの名無しさん :2020/04/14(火) 21:49:20.96 ID:LYeRKBcY0.net
- >>310
コンストラクタで検索してみよう
- 312 :デフォルトの名無しさん :2020/04/14(火) 21:52:06.64 ID:LIgN/yKN0.net
- >>310
それはコンストラクタで関数じゃない
つ http://www.kumei.ne.jp/c_lang/cs/cs_24.htm
- 313 :デフォルトの名無しさん (ワッチョイ 7b59-vo9w):2020/04/14(火) 22:02:45 ID:kOEIvzYK0.net
- >>311,312
コンストラクタと言うキーワード自体を知らなかったので大変助かりました!
迅速なお答えありがとうございます。
- 314 :デフォルトの名無しさん :2020/04/14(火) 22:48:21.91 ID:GtUt/+gx0.net
- コンストラクタが関数じゃないだとっ?
- 315 :デフォルトの名無しさん :2020/04/14(火) 23:10:59.52 ID:e1S+5JbE0.net
- >>312
え?
- 316 :デフォルトの名無しさん (ワッチョイ ebb2-zja/):2020/04/14(火) 23:32:09 ID:a7j1JMim0.net
- >>313
コンストラクタ知らないとか煽り抜きで基礎からやり直せ。この先すぐに行き止まりやぞ
- 317 :デフォルトの名無しさん (ワッチョイ 06f2-shd/):2020/04/14(火) 23:38:54 ID:aqCEjjHy0.net
- ゆっくり進んでいけばいいさ
- 318 :デフォルトの名無しさん :2020/04/15(水) 00:53:54.59 ID:fYr2Vm730.net
- コンストラクタは言語によってちょこちょこ違いがあるからなあ
それによって作法も、チームとかのなかでの使い方も違うんだよな
- 319 :デフォルトの名無しさん (ワッチョイ 7feb-Ho7r):2020/04/15(水) 06:29:23 ID:ElrUDxqt0.net
- 初心者で妥当な用語もよく分からないのですが、
Sytem.IO.File全体を Sytem.IO.FileInfoで上書きしたり
Sytem.IO.File全体を FileUtilsにリネームして利用ってできるでしょうか
多分歴史的経緯とかなんでしょうが、名前も機能も違和感ある・・・あるよね?
- 320 :デフォルトの名無しさん (ワッチョイ 7feb-Ho7r):2020/04/15(水) 06:30:19 ID:ElrUDxqt0.net
- 正system
誤sytem
- 321 :デフォルトの名無しさん :2020/04/15(水) 07:39:24.57 ID:0X0pe0WE0.net
- >>319
名前空間の上書きは出来るよ
using に= を付ける。
マニュアル読むべし
- 322 :デフォルトの名無しさん (ブーイモ MMbb-XMn9):2020/04/15(水) 07:54:03 ID:HIqtt51zM.net
- マニュアル読むならこのスレには来ないよ
- 323 :今度はビルドとはとか言い出すんだろうか? (ドコグロ MMbf-A2g6):2020/04/15(水) 07:59:57 ID:WVx1tERFM.net
- 進歩しろってことだろ
>>322には一生無理っぽいが…
- 324 :デフォルトの名無しさん (ワッチョイ 7feb-Ho7r):2020/04/15(水) 08:16:40 ID:ElrUDxqt0.net
- >>321
ありがとう! alias directiveで上書きになるのか
aliasって単語から、上書き用に使うという発想が出てこなかった・・・
- 325 :デフォルトの名無しさん :2020/04/15(水) 11:11:56.53 ID:O8tgepsJ0.net
- >>319
名前も機能もべつに違和感ないけど
- 326 :デフォルトの名無しさん (ワッチョイ d763-oiAQ):2020/04/15(水) 11:38:37 ID:hXBJaVw20.net
- >>319
すでにFileInfoは存在してるしUtilsみたいな抽象的な名称はあんま好きじゃない
あくまでもnamespaceなんだから個人的に違和感は無い
- 327 :デフォルトの名無しさん (アウアウウー Sa1b-V/21):2020/04/15(水) 12:23:21 ID:4U/dMrxba.net
- >>319
あなたの違和感をなくすために他人に違和感を与えるコードを書いてはダメでしょうw
そういう尾崎豊的な「世の中間違ってる!」は義務教育で卒業しておけよw
インフラはみんなが慣れ親しんで知識を共有していることに意味があるんだよw
変なエイリアスを使うことはあなたの「俺流」を理解する手間を読む人に押し付けることになる。
それは1年後の自分自身かもしれないよw
- 328 :デフォルトの名無しさん :2020/04/15(水) 15:49:28.85 ID:fYr2Vm730.net
- 自分だけのコードなら好きにすればとしか
チームで共有するならレビューしろとしか
- 329 :デフォルトの名無しさん (ワッチョイ 372c-+ZVK):2020/04/15(水) 23:14:10 ID:erSE2P+N0.net
- 添付プロパティがあるじゃない
- 330 :デフォルトの名無しさん (ワッチョイ 7feb-Ho7r):2020/04/16(Thu) 00:47:09 ID:97EKYXOu0.net
- まさにそういう話で、(大多数が慣れ親しんだ知識である)自然言語で full path of a file だから
(FileInfo) hoge.FullName より
(File) file.FullPath の方が読みやすく、知識なく利用しやすくない? と思ったんだ
自分が知らないだけでFileInfoやFullNameの方が妥当な理由あるのかな
- 331 :デフォルトの名無しさん (アウアウウー Sa1b-7wDT):2020/04/16(Thu) 00:49:55 ID:PmElPVF7a.net
- 質問です。
visual studio2013 のWEBフォーム(.aspx)を使用しています。
以下のようなフォームを作りたいです。 どうやってつくったらよいでしょうか?
▼コンビニ ←選択すると▼マークになり、折り畳みのチェックボックスリストが出る
■セブンイレブン ←選択するとレ点でなく、□を塗りつぶす
□ローソン
■ファミリーマート
△ショッピングモール ←選択しないときは△マークでリストは折りたたまれている
△スーパー
よろしくお願いいたします。
- 332 :デフォルトの名無しさん (ワッチョイ d7ac-DNPS):2020/04/16(Thu) 00:52:31 ID:5emHbHZx0.net
- チーム内でそれを浸透させる実力があるならいいんじゃね
俺はデフォルト推奨派なので、それだけの理由なら無意味な改変に見えるので
、それは賛成しないがな
「俺が見易い」は「皆が見易い」ではない
- 333 :デフォルトの名無しさん (ワッチョイ 5701-xSTm):2020/04/16(Thu) 00:52:46 ID:tiZKLZWE0.net
- ベースはアコーディオンかな?
- 334 :デフォルトの名無しさん :2020/04/16(木) 00:56:55.23 ID:tiZKLZWE0.net
- CreateFontがMFCではCreateFontIndirect
でオーヴァーライドされている事を
知った時の驚き。😵
世の中広いからそういう常識の所も
あるのでしょう❤
- 335 :デフォルトの名無しさん :2020/04/16(木) 01:31:46.69 ID:kjXrQDZb0.net
- windowsならpathってだけで他システムでもpathかどうか?
組み込み系OSだったらディレクトリ構造持ってないようなやつあったりしないかね?全然しらんけど
つうかその程度なら332と同じく公式に準拠する
IDEがヘルプ付きで候補出してくれるんだし、リファレンスもあるんだから困るほどのことじゃない
あくまでもプログラムであって自然言語じゃない
- 336 :デフォルトの名無しさん :2020/04/16(木) 02:36:44.98 ID:tywb42E30.net
- PowerShell では、FullName
$files = ls -File
echo $files[ 0 ].FullName
- 337 :デフォルトの名無しさん :2020/04/16(木) 07:33:52.84 ID:9ICqslwr0.net
- 共有フォルダに置いてる実行ファイルで、一人が起動している時に別の人が起動したら処理中ですとお断りメッセージ出したいのですが、どういう方法で実現できるでしょうか?
DBでフラグ監理しようかとも思っているのですが、世間様はどうしているのかなと思い
- 338 :デフォルトの名無しさん :2020/04/16(木) 07:47:41.61 ID:tywb42E30.net
- 共有フォルダ内に、ファイルを置いて、それに記録すれば?
- 339 :デフォルトの名無しさん :2020/04/16(木) 08:37:52.82 ID:vjXf34hg0.net
- ロックファイル的なものを起動時に作成・チェックさせるとかかねぇ?
異常終了したりしてロックファイルが残った時が面倒だけど
そもそも共有フォルダに実行ファイルを置いて、それを起動するって運用が微妙な気がするけど
- 340 :デフォルトの名無しさん :2020/04/16(木) 09:47:16.73 ID:ADqfPc91r.net
- それな
ファイルおいたとこで実行ユーザはローカルとか、なにそれって感じ
なんでサーバにしないのとかね
- 341 :デフォルトの名無しさん :2020/04/16(木) 10:45:00.68 ID:+RUJOV4w0.net
- Unix環境とかならファイルオープン時に共有モード指定できないから、ロックファイルを「作成」できるかで排他制御するけど、
Windows環境なら共有モード指定できるから、「排他モードでオープン」できるかで排他制御できないの?
そうすれば、ロックの解放は単にファイルハンドルを閉じるだけでロックファイルを削除する必要はない。
で、異常終了してプロセスが終了した場合はOSがプロセスによって開かれてたファイルハンドルをクローズしてくれるので、
自動的にロックも解放されるってことにはならないの??
- 342 :デフォルトの名無しさん :2020/04/16(木) 11:06:22.69 ID:+RUJOV4w0.net
- 途中共有モードを無視するような輩がいたらあれだけど、とりあえず全部Windowsで揃えてSMBで共有すればそれでいけそうな気がする
- 343 :デフォルトの名無しさん :2020/04/16(木) 11:06:44.41 ID:X8YLxQCs0.net
- 設計が悪い
- 344 :デフォルトの名無しさん :2020/04/16(木) 11:07:10.39 ID:tiZKLZWE0.net
- 理論通りに動けば良いなぁ
なおopenfiles ってコマンドで強制解除出来る
- 345 :デフォルトの名無しさん (ワッチョイ d790-eJAq):2020/04/16(Thu) 11:17:40 ID:+RUJOV4w0.net
- そうすれば、アプリ起動時にnew FileStream(特定のファイル、FileShare.None) アプリ終了時にStream.Closeの2行で実装終了
Windows最強
- 346 :デフォルトの名無しさん (ワッチョイ d733-YvxL):2020/04/16(Thu) 11:28:29 ID:vjXf34hg0.net
- >>345
それって共有フォルダ側が安いNAS(≒samba)でも使えるの?
- 347 :デフォルトの名無しさん (ワッチョイ d790-eJAq):2020/04/16(Thu) 11:51:08 ID:+RUJOV4w0.net
- >>346
それは知らない。
すべては要件次第。あくまで全部Windowsで揃えられる場合の一番簡単な実装を示しただけ。
安いNASでダメだったら、君のいうロックファイルのやり方でやればいい。ただし、君の方法もひょっとしたら安いNASで「ファイルの存在確認とファイルなければ作成」をアトミックにやってくれないSMBの実装があって使えない可能性もあるので。
- 348 :今度はビルドとはとか言い出すんだろうか? :2020/04/16(木) 12:10:19.37 ID:7ingXuoIM.net
- >>339
> そもそも共有フォルダに実行ファイルを置いて、それを起動するって運用が微妙な気がするけど
バージョンアップの手間を省きたいとかでしょ
Web化しろとかの話もあるだろうけどそこまで工数かけられないとか普通にあると思う
- 349 :デフォルトの名無しさん :2020/04/16(木) 12:11:00.19 ID:qm5c5Rqxa.net
- >>337
微妙に要件と違うけど、昔のアドビのアプリは同一ネットワーク内のPCでは
同じプロダクトキーでアクティベートされたソフトは同時に起動できなかった
あれと同じ仕組みを使うことは可能じゃないか
具体的にどういう仕組みか知らんけどw
- 350 :デフォルトの名無しさん (ワッチョイ 5701-xSTm):2020/04/16(Thu) 12:45:50 ID:tiZKLZWE0.net
- udpでマルチキャストする
- 351 :337 (ワッチョイ 1701-wIxw):2020/04/16(Thu) 18:51:55 ID:9ICqslwr0.net
- DBにログインIDと開始時刻を記録して処理が成功したら記録削除、失敗してたら20分経過で無効情報で良いかと思ってます
処理が20分超えたらアウトというイケてない部分をどうしようかとも思ってます
だったらファイル管理でも良いかなと思ってますが
- 352 :デフォルトの名無しさん (ワッチョイ 57ad-7Qxr):2020/04/16(Thu) 19:13:42 ID:jOE4Vo+O0.net
- DBに処理対象を一意な文字列にして、ユーザIDとIPアドレスをもってロックを確保しに行ってるな。
弾かれた側に「誰々がどこでロックしてるから諦めるか直談判しにいけ」ってメッセージにしてる。
ロックが外れる時間は2分にしてるけど、ロック掛けてる側が、30秒ごとに延長するように更新してる。
トランザクションは増えるけど、強制終了してロックが残ったのを外す方が手間。
20分待ってくれる方が少ないと思うぞ。
1000人ぐらいが同時に使ってるが、それほど負荷は無い。ジャーナルの残し方だけ気にした方がいいぐらいか。
- 353 :デフォルトの名無しさん :2020/04/16(木) 22:10:16.88 ID:phPWx1q30.net
- >>351
タイムアウトを含めて失敗したら即リソースを解放すればいいだけでは?
あと排他制御が必要なリソースの状態を管理するテーブルと
そのリソースを誰が使ってるかみたいな情報を管理するテーブルは別にしたほうがいいよ
- 354 :337 (ワッチョイ 1701-wIxw):2020/04/17(金) 07:33:58 ID:sST11acE0.net
- >>353
処理失敗とかイベント取れる所なら良いのですがパソコンがネットワークからいきなり外れた時とかどうしようかなと
- 355 :デフォルトの名無しさん :2020/04/17(金) 15:28:13.52 ID:xgpGiYXu0.net
- >>354
共有フォルダに実行ファイルを置くやり方だから
クライアント側でしかタイムアウト検知できないって話なのか
そうすると>>352が書いてるような方式になるけど
サーバー側で実行するやり方なら必要のない複雑性を抱える事になるから
テストや運用時の手間を考えるとアーキテクチャ見直したほうが早い気がする
- 356 :デフォルトの名無しさん (ワッチョイ d777-Ho7r):2020/04/17(金) 23:54:48 ID:66fHRI6x0.net
- chartのX軸のスクロールバーを動かしたときのイベントハンドラ的なものってありますか?
具体的には、縦軸(Y軸)の範囲を表示されている範囲内の最大値と最小値に逐次変更したいです。
- 357 :デフォルトの名無しさん (ワッチョイ d777-Ho7r):2020/04/18(土) 15:39:00 ID:9PsozTHm0.net
- これで解決しそうです。
https://stackoverflow.com/questions/5363209/chart-control-y-axis-auto-scale-on-scrolling
- 358 :デフォルトの名無しさん (アウアウウー Sa1b-7wDT):2020/04/18(土) 23:09:11 ID:fgVpQ9I4a.net
- >>331
この問題どなたか教えていただけないでしょうか?
とくにレ点じゃないチェックボックスを作成したいです
- 359 :デフォルトの名無しさん (ワッチョイ 57ad-DoiI):2020/04/18(土) 23:47:30 ID:Fpx5gr7r0.net
- >>358
cssで装飾したら?
- 360 :デフォルトの名無しさん (ワッチョイ 9f8a-ycCE):2020/04/19(日) 17:56:07 ID:a5Bxo0wQ0.net
- FormにWebboewserコントロールを張り付けて ↓のコードコピペしたのですがThis がFrom1を参照しているのでエラーになります。
正しく使うのはうすればいいのでしょうか?
https://todosoft.net/blog/?p=380
- 361 :デフォルトの名無しさん (ワッチョイ 5701-lL3q):2020/04/19(日) 18:02:11 ID:jRRmPQvY0.net
- 今時、IE7ベース?
cefsharp使ったら?
- 362 :デフォルトの名無しさん (ワッチョイ 9f8a-ycCE):2020/04/19(日) 18:32:01 ID:a5Bxo0wQ0.net
- 今時WebBrowserコントロールは古いんですね
とりあえず、これは勉強の為のなので、WebBrowserで大丈夫です。
上記コードの this を webBrowser1 に置換すれば問題なく動きますが、thisのまま使う場合はどのようなコードになるのでしょうか?
- 363 :デフォルトの名無しさん (アウアウウー Sa1b-V/21):2020/04/19(日) 19:46:35 ID:E7TwXw1va.net
- ちょっと何言ってるのか
- 364 :デフォルトの名無しさん :2020/04/19(日) 19:56:24.71 ID:3Oe7CVmea.net
- >>362
リンク先のソースのメソッドは、おそらくはFormではなくWebBrowserを継承したコントロールに書くメソッド
WinForms標準のコントロール自体に機能追加することで、あちこちのFormでWebBrowserを使うつどそういうソースを書かなくて済むようにしてる
初学者でカスタムコントロールの作りかたとか未学習なら「this を webBrowser1に置き換え」で回避してよいと思う
- 365 :デフォルトの名無しさん (ワッチョイ 9f8a-ycCE):2020/04/19(日) 21:42:29 ID:a5Bxo0wQ0.net
- >>362
なるほど、このコードはカスタムコントロールを目的としているのですね。
納得しました。ありがとうございました。
- 366 :デフォルトの名無しさん (ワッチョイ 779b-+5sX):2020/04/21(火) 13:34:05 ID:3bJr7zNG0.net
- Form1に以下のような構造体を作ったんです。
// ----------通知方法の構造体--------------------
public struct Nortification
{
public bool OpenBrowser;
public bool MessageboxShow;
public bool ToolchipBaloonShow;
}
次にメンバ変数として以下を定義しました
static Nortification _nort = new Nortification(); //構造体のインスタンス
で、プロパティを作ったんです
public static Nortification nort
{
get
{
return _nort;
}
set
{
_nort = value;
}
}
ところが、このプロパティをForm2で書き込もうとすると
Form1.nort.OpenBrowser = true;
「変数ではないため Form1.nort の戻り値を変更出来ません」とエラーになります。
- 367 :デフォルトの名無しさん (ワッチョイ 779b-+5sX):2020/04/21(火) 13:38:13 ID:3bJr7zNG0.net
- >>366の続き
しかし、以下のようにするとエラーは消えました。
Nortification nt = new Nortification();
nt = Form1.nort;
nt.OpenBrowser = true;
Form1.nort = nt;
いったん別のインスタンスを作ってそこに構造体ごとコピーし、
コピーのメンバなら値を設定出来ました。
最後に元のインスタンスへコピーし直します。
なぜ元の構造体のメンバに直接値を書き込めないのでしょうか?
そもそも構造体の使い方が間違っていますか?
- 368 :デフォルトの名無しさん (JP 0H8f-nkQT):2020/04/21(火) 13:51:21 ID:cdjEy/7BH.net
- >>367
C#入門者が必ず嵌るポイント
c# 値型と参照型 とかでググれば腐るほど出てくる
構造体は特性をよく理解した上でパフォーマンス上のメリットがある場合のみ使うもの
今は忘れてクラスだけ使ってればいい
- 369 :デフォルトの名無しさん :2020/04/21(火) 15:53:17.78 ID:1MDMdwK80.net
- このメモリ大容量時代に構造体プログラミングなんてすなや
- 370 :デフォルトの名無しさん :2020/04/21(火) 16:02:20.66 ID:LjsiMFkA0.net
- 必要なとこでは必要なんだよ
- 371 :デフォルトの名無しさん (オッペケ Sr8b-s6iC):2020/04/21(火) 16:39:28 ID:tax3JV1pr.net
- でもまあここでは要らないわな
- 372 :デフォルトの名無しさん (ワッチョイ 9fad-7eNI):2020/04/21(火) 16:39:46 ID:LjsiMFkA0.net
- そだね
- 373 :デフォルトの名無しさん :2020/04/21(火) 16:44:50.57 ID:3bJr7zNG0.net
- おっしゃるとおりクラスに変更したところエラーは出なくなりました。
ググると以下のページのような記述がありました
https://smdn.jp/programming/netfx/valuetype_referencetype/#value_type_property
値型では代入時にコピーが作成されますが、値型のプロパティやインデクサから値を
取得しようとする場合も同様にコピーが作成されます。
値型のプロパティ・インデクサはインスタンスそのものではなくインスタンスのコピーを
返すことから、直接インスタンスを変更することができません。
そのため、次の例のように値型のプロパティを直接変更しようとするとコンパイルエラーとなります。
参照型では変更しようとするインスタンスを参照によって取得することができるため、
コンパイルエラーとはなりません。
>値型のプロパティはインスタンスそのものではなくインスタンスのコピーを返す
ということなのでやはり構造体の型をプロパティにするのは使い勝手が悪そうですね
いっそインスタンス作成時にpublicにしたほうがいいかもと思いました
- 374 :デフォルトの名無しさん (アウアウウー Sa1b-V/21):2020/04/21(火) 16:56:16 ID:K2Bh67Tta.net
- >>373
コードを書く側の立場で考えると
>構造体の型をプロパティにするのは使い勝手が悪そう
これはむしろ逆の場合が多いと思うよ。
考えてもみてよ。
プロパティーの値が変更された時の処理をプログラマは普通プロパティーのセッターに書く。
ゲッター経由でプロパティーが実質的に変更されてしまう可能性があるとしたら?
- 375 :デフォルトの名無しさん (ワッチョイ bfda-ycCE):2020/04/21(火) 17:27:49 ID:2AP1dLJq0.net
- もしかして: notification
- 376 :デフォルトの名無しさん (ワッチョイ ff2d-QsZ8):2020/04/21(火) 17:34:55 ID:Q9kb1Yoh0.net
- 値型で高速化の話が出てきたついでに教えて欲しいんだけどさあ
下のそれぞれの変数って、スタックとヒープどっちにメモリが確保されてるの?これであってる???
静的なint型の変数・・・・スタック
静的な構造体・・・・スタック
mainメソッド内に宣言されたint型の変数・・・・ヒープ
mainメソッド内に宣言された構造体・・・・ヒープ
インスタンス内で宣言されたint型変数・・・・ヒープ
インスタンス内で宣言された構造体・・・・ヒープ
- 377 :デフォルトの名無しさん (ワッチョイ 7feb-Ho7r):2020/04/21(火) 18:06:24 ID:3Z0ku97Y0.net
- VisualStudioプロフェッショナル版以下使用時、
プログラムの概観を素早く把握したい時ってどうするのがベストなんでしょう?
ctrl + m → o ?
逆に把握してもらいたい時はDocFXとかに頼る形になるのかな
- 378 :デフォルトの名無しさん :2020/04/21(火) 18:43:14.63 ID:gorOElOo0.net
- 概要をさくっと把握する、にコード見ろになるの?
概要こそドキュメント、もしくはファイル先頭に概要コメントで詳細は各メソッドのコメントなりコード見ろじゃない?
docをコメントから自動生成するなら書いてある内容の粒度はコメントだろうがドキュメントだろうが変わらん
プログラマが見るならIDEで見れたほうがいい場合もあるしそうじゃないなたhtmlドキュメントみたいなのが良い場合もある
- 379 :デフォルトの名無しさん :2020/04/21(火) 18:50:11.10 ID:XAeWC18v0.net
- >>366
なんでget,setしとるの?
- 380 :デフォルトの名無しさん :2020/04/21(火) 18:52:56.43 ID:cdjEy/7BH.net
- >>376
ローカル変数以外は全部ヒープ
なおローカル変数もクロージャ等によりヒープになる場合がある
- 381 :デフォルトの名無しさん :2020/04/21(火) 18:57:38.36 ID:gorOElOo0.net
- >>376
ついでにいうとそもそもint自体も構造体だよ
- 382 :デフォルトの名無しさん :2020/04/21(火) 19:18:17.27 ID:mEER3mJt0.net
- >>381
mjd?
- 383 :デフォルトの名無しさん (ブーイモ MMcf-gAk0):2020/04/21(火) 19:36:44 ID:DjpYKR7GM.net
- 意識しすぎてstringクラスでまた勘違いする
- 384 :デフォルトの名無しさん (ワッチョイ b7cf-RulI):2020/04/21(火) 20:51:10 ID:E4gE2B8j0.net
- >>379
get,setしないとフィールドにアクセスできないじゃん
- 385 :デフォルトの名無しさん (ワッチョイ ff2d-QsZ8):2020/04/21(火) 20:56:24 ID:Q9kb1Yoh0.net
- >>380
全然わかってなかったぜ、ありがとう!
- 386 :デフォルトの名無しさん :2020/04/21(火) 21:28:08.07 ID:Vo0c0hBga.net
- >>382
組み込みの値型
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/builtin-types/value-types#built-in-value-types
- 387 :デフォルトの名無しさん :2020/04/21(火) 21:44:15.58 ID:9fcQjJm80.net
- >>373
structをref returnする方法もある
public ref Nortification nort{
get{ return ref _nort; }
}
- 388 :デフォルトの名無しさん :2020/04/21(火) 22:34:21.97 ID:gnqBqFRT0.net
- >>380
ローカル関数ってパフォーマンス上悪手だったんだ
てっきりcall前の引数のpush等がなくなる分有利かと勘違いしていたわ・・・
- 389 :デフォルトの名無しさん :2020/04/21(火) 23:09:05.72 ID:XAeWC18v0.net
- >>384
structだぞ
- 390 :デフォルトの名無しさん (ワッチョイ b2da-6+K6):2020/04/22(水) 02:26:50 ID:C83u6fr40.net
- https://dotnet.microsoft.com/download/dotnet-framework/net48
のDeveloper Pack をインストールしました。
C#の言語バージョンは 8.0 になると思ったのですが、現在は 5 のようです。
--------------------------------------------------------------
C:\Windows\system32>csc
Microsoft (R) Visual C# Compiler version 4.8.3752.0
for C# 5
Copyright (C) Microsoft Corporation. All rights reserved.
This compiler is provided as part of the Microsoft (R) .NET Framework,
but only supports language versions up to C# 5,
which is no longer the latest version. For compilers that support newer versions of the C# programming language,
see http://go.microsoft.com/fwlink/?LinkID=533240
--------------------------------------------------------------
どうすれば、C# 8 を使用出来ますか?
- 391 :デフォルトの名無しさん :2020/04/22(水) 09:28:54.12 ID:lrNM/Ez+a.net
- >>390
手で入れたことはないから確証はないけど、.NET Frameworkに含まれるC#コンパイラはRoslynになる前の旧世代のもので止まっているのだろう
普通、新しい.NETはVSのインストーラから入れるもので、そうすればRoslyn世代のコンパイラも勝手に入る
ちなみにC#8では.NET Coreのみに対応しており、.NET Frameworkは完全にサポート外になった
- 392 :デフォルトの名無しさん (ワッチョイ dc2c-y6ks):2020/04/22(水) 15:03:54 ID:Tc3u/Tz90.net
- > ちなみにC#8では.NET Coreのみに対応しており、.NET Frameworkは完全にサポート外になった
そんなわけあるか
普通にコンパイルできるわ
- 393 :デフォルトの名無しさん (ワッチョイ 66ad-rGdA):2020/04/22(水) 15:23:15 ID:NZfVsFFq0.net
- >>392
非対応の機能使ってなければコンパイルできるよね
- 394 :デフォルトの名無しさん (ワッチョイ 66ad-rGdA):2020/04/22(水) 15:23:51 ID:NZfVsFFq0.net
- >>391
.NET Standardも2.1なら対応してるやろ
- 395 :デフォルトの名無しさん (ワッチョイ 953a-1Gce):2020/04/22(水) 15:25:45 ID:M4wrH+Xp0.net
- C# 8.0 の新機能
https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-8
>C# 8.0 は .NET Core 3.x と .NET Standard 2.1 でサポートされています。
- 396 :デフォルトの名無しさん (ブーイモ MMfd-4A6c):2020/04/22(水) 20:18:39 ID:oGjFYrP4M.net
- .NET Frameworkは.NET Standard2.1はサポート対象外なのか
非同期ストリームやインデクサやrange等は.NET Standard 2.1なので、C#8.0を.NET Framework 4.8に設定すると使用できなくなる
.NET Core 3.0やXamarin、Unity、Monoはすべて.NET Standard 2.1を実装する
- 397 :デフォルトの名無しさん (ワッチョイ 7349-xf6K):2020/04/23(Thu) 13:32:04 ID:UY53iXGX0.net
- coreに行っとけってこった
- 398 :デフォルトの名無しさん :2020/04/23(木) 17:51:59.15 ID:YT2pRfjo0.net
- Coreにさっさと移行すべきというのはその通りだが
C#8の文法に必要な大体のライブラリは.NET Framework用にバックポートされてNugetで公開されてる
- 399 :デフォルトの名無しさん :2020/04/23(木) 19:26:18.65 ID:iR4g/Ykka.net
- 言いたいことは判るがそれは論点ずらしだ
- 400 :デフォルトの名無しさん :2020/04/23(木) 19:57:39.98 ID:m302zc2R0.net
- 作成したアプリの.NETのバージョンが4.6.2で古い4.5がインストールされている環境でも動作させたいのだけど、何もしなくても動かせますかね?使ってるc#のコードは、4.5以降なら動作するんですが。
アプリケーション構成ファイルのsupportedRuntimeとか書き換えるとか何か必要ですか?
- 401 :デフォルトの名無しさん :2020/04/23(木) 20:04:56.27 ID:ngI9YQpk0.net
- >>400
プロジェクトのプロパティでアプリケーションの対象フレームワークを4.5に変更してからリビルド
- 402 :デフォルトの名無しさん (ワッチョイ faad-PpL2):2020/04/23(Thu) 20:17:04 ID:m302zc2R0.net
- >>401
ありがとうございます。
リビルド出来たらしたくないのですが。
インストールされている.NET毎にアプリリビルドが必要になるんですね。リビルドしないで配布する方法あればいいのですが。
- 403 :デフォルトの名無しさん (ワッチョイ 66ad-rGdA):2020/04/23(Thu) 20:26:13 ID:AGd9KY8X0.net
- 古いバージョンならリビルドしないと無理。逆は大丈夫だけど。
- 404 :デフォルトの名無しさん (ワッチョイ 66ad-rGdA):2020/04/23(Thu) 20:26:49 ID:AGd9KY8X0.net
- ちなみになんでサポート切れのバージョン使ってんの?
- 405 :デフォルトの名無しさん :2020/04/23(木) 20:38:44.94 ID:YT2pRfjo0.net
- そのアプリが面倒みる最低バージョンでビルドしとけばいいよ
もちろんそれより上のバージョンでちゃんと動くことを保証するものではないけど
- 406 :デフォルトの名無しさん :2020/04/23(木) 20:39:33.00 ID:m302zc2R0.net
- >>403
ありがとうございます。
そーなんですね。では、4.5でビルドして配布することにします。
>>404
どーせなら、古い環境でも動く人用にもサポートしとこうと思いまして。
- 407 :デフォルトの名無しさん (ワッチョイ 66ad-rGdA):2020/04/23(Thu) 20:50:49 ID:AGd9KY8X0.net
- >>406
Windows10は最初のバージョンから既に4.6がプレインストールされてたはずだけど…まだ7使ってんの?しかもサポート切れのままで?
- 408 :デフォルトの名無しさん (ワッチョイ dc2c-y6ks):2020/04/23(Thu) 21:12:57 ID:YT2pRfjo0.net
- Windows 8.1さんを忘れるんじゃない
- 409 :デフォルトの名無しさん :2020/04/23(木) 21:18:36.78 ID:A1RPJ5qa0.net
- >>384
答えろよ
- 410 :デフォルトの名無しさん :2020/04/23(木) 21:22:31.43 ID:AGd9KY8X0.net
- >>408
ごめんわざと
- 411 :デフォルトの名無しさん :2020/04/23(木) 21:29:24.37 ID:tIS/wRWha.net
- あれれ、たしか数年前の時点で
.NETFramework4.5.2以下のサポートは強制打ち切りになったはず・・・・
いまは最低4.6にしとけば全環境カバーできるものとばかり思ってたけど、俺なにか勘違いしてる?
- 412 :デフォルトの名無しさん :2020/04/23(木) 21:34:01.17 ID:AGd9KY8X0.net
- >>411
4.5.2はまだサポートされてるっしょ
- 413 :デフォルトの名無しさん :2020/04/23(木) 21:39:29.55 ID:tIS/wRWha.net
- ごめん自己レス
4.5.2「以下」じゃなくて4.5.2「未満」が2016年1月13日でサポート終了だった・・・間違えて覚えてたわ
https://www.atmarkit.co.jp/ait/articles/1503/04/news141.html
- 414 :デフォルトの名無しさん :2020/04/23(木) 23:58:26.72 ID:9prkr8SY0.net
- 7もまだESUってのがあるからあと3年弱は現役だぞ
- 415 :デフォルトの名無しさん :2020/04/24(金) 01:05:13.24 ID:agN2oJUo0.net
- >>414
でも4.5はサポート切れ
- 416 :デフォルトの名無しさん (ワッチョイ d49b-Ue8b):2020/04/24(金) 11:08:50 ID:VS+6OBXT0.net
- メソッド内でnewしたインスタンスはメソッド抜けたら破棄されるから
disposeしたりnull代入したりする必要はありません!
っていうネット記事を見たんですが本当ですか?
メソッド抜けたら破棄されるのは値型の変数だけで
インスタンスが消費するメモリは解放されないと思っていました
- 417 :デフォルトの名無しさん :2020/04/24(金) 11:12:48.04 ID:0XMd7UjD0.net
- GCが気が向いたときに掃除してくれるんじゃなかったっけ?
- 418 :デフォルトの名無しさん :2020/04/24(金) 11:22:24.63 ID:jeeSLMOH0.net
- Disposeやnull代入してもそのクラス自体のメモリは解放されない
C#においてはそこはガベコレの担当であって基本プログラマはコントロールできないので少なくともnull代入は完全に不要
Marshal.AllocHGlobalのような明示的に解放しなきゃいけないアンマネージドリソースを使ってる場合にはIDisposable.Disposeが必要になる訳だけど、
ただそれも明示的にDispose()を呼ばずとも一応GCによる破棄タイミングで自動的にDispose()が呼ばれるので絶対呼ばなきゃいけない訳ではない(なんかの理由でDisposeに関しては明示的に呼んだ方が良かったはずだけど)
- 419 :デフォルトの名無しさん (ワッチョイ 66ad-rGdA):2020/04/24(金) 11:41:15 ID:agN2oJUo0.net
- >>418
Disposeで破棄せずに(保険用の)ファイナライザーに任せると、実際に破棄されるタイミングがgen0→gen1みたいに後回しになっていって高コストになるからね
- 420 :デフォルトの名無しさん (アウアウウー Sab5-BpYI):2020/04/24(金) 12:08:50 ID:hmKdXDZUa.net
- >>416
ネット記事じゃなくてちょっと前のここのレスじゃないのそれw
- 421 :デフォルトの名無しさん (アウアウエー Sa6a-0GGu):2020/04/24(金) 12:14:59 ID:FFBNt2WCa.net
- >>416
スコープ抜けてからでも使用される戻り値とかはそうだね
スコープ内で完結してたら?
- 422 :デフォルトの名無しさん (ワッチョイ d49b-Ue8b):2020/04/24(金) 12:25:56 ID:VS+6OBXT0.net
- >>420
この記事だったかも
https://qiita.com/7of9/items/ed4aa75852ae92c9cc58#comment-3cd34c69333eaf1c2d1e
nullを入れるのはやめましょう。
そんなことしなくてもローカル変数なら最後に登場した箇所以降はスコープ抜けたのと同じ扱いに最適化されます。
入門書にはnullを入れるよう書いてあるのもあるのですが・・・
https://i.imgur.com/VMOSHDY.gif
- 423 :デフォルトの名無しさん :2020/04/24(金) 13:00:24.56 ID:hmKdXDZUa.net
- >>422
null代入は無意味は(ほとんどの場合)本当
それ言ってるのたぶんVB上がりの人
メモリーの管理はシステム任せでOK
Dispose無意味は(ほとんどの場合)間違い。
IDisposableをわざわざ実装しているのは、不要になったら可及的速やかにDisposeして欲しいから。
コンピュータのリソースにはシリアルポートみたいに数個しか存在しなかったり、拡張スロットやUSBにぶら下がってる
ハードウェアみたいに排他的にしか使用できないものがある。
そういうのは使い終わったらとっとと解放してやらないと他で使えないことになる。
IDisposableはそういう使い方を想定している
- 424 :デフォルトの名無しさん :2020/04/24(金) 13:11:21.82 ID:agN2oJUo0.net
- >>422
何その画像…デタラメやん
- 425 :デフォルトの名無しさん :2020/04/24(金) 13:15:41.83 ID:5EQwPUhVa.net
- 間違ってはいないだろ
nullを代入しておけば、メソッドを抜ける前にGCが走った場合に早期に解放されるかもしれない
ほとんどのメソッドは一瞬で抜けるため無意味だが、極一部の長時間抜けないメソッドではnull代入は必ずしも無意味ではない
- 426 :デフォルトの名無しさん :2020/04/24(金) 13:22:18.77 ID:rjwoLxqDH.net
- null代入して直後にGC.Collect呼ぶのはやったことある
古い.NETのバージョンだと、画像処理とかで巨大なオブジェクトを何度も確保しようとするとメモリ不足で落ちるケースがあった
- 427 :デフォルトの名無しさん (ワッチョイ 66ad-rGdA):2020/04/24(金) 13:47:27 ID:agN2oJUo0.net
- 「インスタンスを解放するためには、b=null; とする必要があります」ってのは明らかに間違いやろ
- 428 :デフォルトの名無しさん (ワッチョイ c252-Z+/y):2020/04/24(金) 13:49:36 ID:DJ6Oa20x0.net
- >>422
参考のためにその本のタイトルと著者を教えてもらえるかな?
- 429 :デフォルトの名無しさん (ワッチョイ f2da-QpYc):2020/04/24(金) 14:38:19 ID:+jmL6Bae0.net
- bがこの後どのような使われ方するのか分からんことには何とも言えん
- 430 :デフォルトの名無しさん (ワッチョイ c252-Z+/y):2020/04/24(金) 14:56:29 ID:DJ6Oa20x0.net
- この本はその1ページで説明が完結していて、そこでnullを代入しないとメモリリークが発生すると誤解されるような記述の仕方をするのは、入門書としてNGだろう。
- 431 :デフォルトの名無しさん (ワッチョイ 0e33-lMNq):2020/04/24(金) 15:17:25 ID:ANXSn9cW0.net
- >>428
右端の「4日目 オブジェクト指向(1)」という柱でググると、インプレスの『1週間でC#の基礎が学べる本』がHitするな
あってるかどうかは知らん
- 432 :デフォルトの名無しさん (アウアウウー Sab5-BpYI):2020/04/24(金) 15:49:58 ID:hmKdXDZUa.net
- 10年ぐらい前、本屋で結構挑発的なタイトルのCの入門書を見つけたので
立ち読みしてみたら前書きでnullと\0を混同してる記述を見つけてひっくり返ったことがあるw
学校の教科書じゃないんで本に書いてあるからって鵜呑みにしない方がいいねこの分野は。
- 433 :デフォルトの名無しさん (アウアウエー Sa6a-0GGu):2020/04/24(金) 16:15:17 ID:3fWjsT92a.net
- >>427
b=null; にしておけばいつの間にかインスタンスが解放されるかも知れません
くらいですね
- 434 :デフォルトの名無しさん :2020/04/24(金) 16:28:15.46 ID:qTnWiq4N0.net
- >>425
その認識が間違いだよ
GC目的でローカル変数にnull入れるのは無意味
https://devblogs.microsoft.com/oldnewthing/20100810-00/?p=13193
ローカル変数じゃなければ意味がある場合もあるが入門書で書く内容ではない
- 435 :デフォルトの名無しさん (ワッチョイ 66ad-rGdA):2020/04/24(金) 16:41:13 ID:agN2oJUo0.net
- >>433
別にそうする必要はないから誤解を招くような記載は不要
- 436 :◆QZaw55cn4c (ワッチョイ 6eaa-3Lep):2020/04/24(金) 17:05:36 ID:+Mxb0Kwr0.net
- >>418
たとえ null 代入がガペコレの契機にならなくとも、ヒューマン側では意図を明確に記述している点で、null 代入は推奨できる記述方法なのでは?
- 437 :デフォルトの名無しさん (ワッチョイ c001-Wew5):2020/04/24(金) 17:08:09 ID:WBygUvPh0.net
- sync;sync;sync; みたいな物か
- 438 :デフォルトの名無しさん (JP 0H34-GHE+):2020/04/24(金) 17:08:16 ID:gOoAV1SLH.net
- >>436
こいつは馬鹿なんじゃないかと読む者に疑いを持たせる契機にはなるね
- 439 :デフォルトの名無しさん (ワッチョイ 66ad-rGdA):2020/04/24(金) 17:11:27 ID:agN2oJUo0.net
- >>436
なぜC#なのにnullを代入する必要があるのかどうか悩むことになる時点でout
- 440 :デフォルトの名無しさん (ラクッペペ MM34-3YDc):2020/04/24(金) 17:13:01 ID:pn4zFTupM.net
- 意図が明確なのと無駄な意図の表明を混同するな
シンタックスシュガー嫌いおじさんと同じ言動だと気づけ
- 441 :デフォルトの名無しさん (ワッチョイ ac63-aCTA):2020/04/24(金) 17:13:39 ID:Ln0giejY0.net
- 人間側に意図を伝えたいならコードじゃなくてコメント書けよ
不要なコードを記述することが推奨なんかされるわけがない
- 442 :デフォルトの名無しさん :2020/04/24(金) 17:17:33.89 ID:CQLUkzVV0.net
- >>436
ごめんガペコレって何?
ガベコレならわかるけど
- 443 :デフォルトの名無しさん (ブーイモ MMfd-Pmq7):2020/04/24(金) 17:37:41 ID:+0niyonSM.net
- >>441
コメントで書かれても。。。
- 444 :デフォルトの名無しさん (ワッチョイ 0a2f-Hty+):2020/04/24(金) 18:39:20 ID:4FfGWszI0.net
- >>418
>明示的にDispose()を呼ばずとも一応GCによる破棄タイミングで自動的にDispose()が呼ばれる
かどうかは実装によったはず
>>422,427
その画像のページ見る限り、参照が残ってたらガベコレの対象にならないって説明をしたかったんだろうな
- 445 :デフォルトの名無しさん (ワッチョイ 245f-i0du):2020/04/24(金) 18:40:18 ID:0yikN2xQ0.net
- 今Xmlのデシリアライズの質問に答えてくれる方いますか?
- 446 :デフォルトの名無しさん (ワッチョイ 41a7-pY0b):2020/04/24(金) 18:56:15 ID:qZ8JT++I0.net
- ダメだ
- 447 :デフォルトの名無しさん :2020/04/24(金) 20:50:16.80 ID:h9xiDvvfa.net
- 例えばCの場合ポインタをfreeした後に再利用予定無いならそのポインタにNULL代入する意味は無いが
NULL代入する習慣があるようだけどC#のnullもそんな感じで代入してるんですか?
- 448 :デフォルトの名無しさん :2020/04/24(金) 20:53:13.33 ID:agN2oJUo0.net
- >>447
普通はnull代入なんてしない。ランタイムが勝手にやってくれる。
- 449 :デフォルトの名無しさん :2020/04/24(金) 20:53:48.09 ID:agN2oJUo0.net
- ランタイムが勝手にメモリ解放してくれる、ね。
- 450 :今度はビルドとはとか言い出すんだろうか? :2020/04/24(金) 21:04:37.09 ID:5Yl2wSMPM.net
- >>447
NULL代入はバグとかで多重開放した時に管理エリアが壊れるのを防ぐため
あまりいい習慣とは思えないけどな
>>448-449
お前は何を言ってるんだよ
- 451 :デフォルトの名無しさん (アウアウウー Sab5-BpYI):2020/04/24(金) 21:09:13 ID:hmKdXDZUa.net
- >>447
上にも書いたけど、nullを入れるのは恐らくVB上がりの人
VB6はそういう文化だった
あるいはDelphi?
こっちは触ったことないからよく知らないけど
- 452 :デフォルトの名無しさん (ワッチョイ 66ad-rGdA):2020/04/24(金) 21:11:07 ID:agN2oJUo0.net
- >>450
なにかおかしいかい?
- 453 :今度はビルドとはとか言い出すんだろうか? (ドコグロ MM2e-f1XF):2020/04/24(金) 21:15:06 ID:WpI80Xm2M.net
- >>451
> 上にも書いたけど、nullを入れるのは恐らくVB上がりの人
違う
VBとCだと目的が違う
>>452
ランタイムが何を指してるのかわからんがCには勝手にヒープメモリーを解放する機能なんてない
- 454 :デフォルトの名無しさん (アウアウウー Sab5-BpYI):2020/04/24(金) 21:18:29 ID:hmKdXDZUa.net
- >>453
だからCの話はしてないのよw
メモリを解放する意図でnullを代入してるC#のコードを見たけどこれ意味あるの?
って話をしてるんでしょw
- 455 :今度はビルドとはとか言い出すんだろうか? (ドコグロ MM02-f1XF):2020/04/24(金) 21:22:09 ID:/oHWXBMTM.net
- >>454
ああ>>447の後半の話か
そりゃすまんな
- 456 :デフォルトの名無しさん (ワッチョイ 66ad-rGdA):2020/04/24(金) 21:24:56 ID:agN2oJUo0.net
- >>453
日本語が通じていなかったようだ
- 457 :今度はビルドとはとか言い出すんだろうか? (ドコグロ MM40-f1XF):2020/04/24(金) 21:56:18 ID:ttgIjm5mM.net
- >>456
はいはいw
- 458 :デフォルトの名無しさん :2020/04/24(金) 22:52:02.97 ID:xndEmFws0.net
- VB6のガベージコレクタがうんこだった頃のトラウマのせい?
- 459 :デフォルトの名無しさん (ワッチョイ 41a7-pY0b):2020/04/24(金) 23:03:19 ID:qZ8JT++I0.net
- グローバルインスタンスホルダーを使ってるときの明示的な参照無効化だろ
ローカルじゃ意味ない
- 460 :デフォルトの名無しさん :2020/04/24(金) 23:32:16.92 ID:sopKw+cH0.net
- 初心者は黙ってnull代入しておけ
意味がないとか決めつけるのは10年早い
- 461 :デフォルトの名無しさん :2020/04/24(金) 23:35:58.32 ID:agN2oJUo0.net
- >>460
初心者こそnull代入なんてすべきじゃない。非常に限られた特別な場合だけ。
- 462 :デフォルトの名無しさん (ワッチョイ 15cf-1Gce):2020/04/24(金) 23:41:17 ID:FbIpmtWO0.net
- >>409
何が?
- 463 :デフォルトの名無しさん :2020/04/25(土) 00:06:19.49 ID:XJisoOEM0.net
- >>451
Delphiはfreeする
- 464 :デフォルトの名無しさん :2020/04/25(土) 00:53:28.01 ID:un7mPScC0.net
- ローカル変数は自動で解放されるんだからnull代入する意味がわからん
- 465 :デフォルトの名無しさん (ワッチョイ 74da-uMKU):2020/04/25(土) 01:03:57 ID:EchrqtYB0.net
- インスタンスへの参照が残ってればGC対象にならない
と言う説明の為に適当にローカル変数を使っただけだと思う
でも読者はローカル変数にnullを入れる事が正しいと思うだろうな
- 466 :デフォルトの名無しさん (ワッチョイ 5c63-QpYc):2020/04/25(土) 04:46:37 ID:5x5kZrrV0.net
- 質問です
Process.Start メソッドの処理が何故か急にやたら時間がかかるようになってしまいました。
いろいろ条件を変えて調べてみましたが、
実行ファイル(拡張子がexeのもの)を明示的に指定するとすぐ開けるようです。
開きたいファイルに関連付けされた実行ファイルを取得することで解決しそうですが
あまりにイケてないのでもっと良い解決方法を探しています。どなたかご存じないでしょうか。
- 467 :デフォルトの名無しさん (アウアウエー Sa6a-0GGu):2020/04/25(土) 11:25:01 ID:4nLfPOGMa.net
- >>464
無限ループの中とか?
そもそもそういう設計ガーって話になるが
- 468 :デフォルトの名無しさん (ワッチョイ f64f-1Gce):2020/04/25(土) 11:36:45 ID:CZd/Jkgq0.net
- 「もう使わない」という意思をコードに込めているような気もする
- 469 :◆QZaw55cn4c (ワッチョイ 6eaa-3Lep):2020/04/25(土) 14:58:43 ID:oe63LKnP0.net
- >>468
私もこの説を推します
- 470 :デフォルトの名無しさん (ワッチョイ ac63-aCTA):2020/04/25(土) 17:31:25 ID:ls8kshvF0.net
- わざわざそんな意志を示さなきゃいけないようなコードはどこかおかしいとなぜ思わないのか?
- 471 :デフォルトの名無しさん (ワッチョイ 66ad-rGdA):2020/04/25(土) 17:57:58 ID:duoUHH2X0.net
- >>468
紛らわしいだけなのでNG
- 472 :デフォルトの名無しさん (ワッチョイ 0c01-UN6T):2020/04/25(土) 18:07:47 ID:qFkcGRPu0.net
- イメージとしてはこんなコードを書いてるってこと?
static void Main(string[] args)
{
var s1 = "Hello ";
var s2 = "World ";
var s3 = "of Null Assignments!!";
s1 += s2;
s2 = null;
ConcatPrint(s1, s3);
s1 = null;
s3 = null;
}
static void ConcatPrint(string s1, string s2)
{
var s = s1 + s2;
Console.WriteLine(s);
s = null;
}
- 473 :デフォルトの名無しさん :2020/04/25(土) 18:46:43.43 ID:Shh4d2200.net
- s2がめちゃくちゃでかくて ConcatPrint がすごく時間がかかる処理ならs2を使わなくなった段階で null を代入するのは意味があるんじゃないか
- 474 :デフォルトの名無しさん :2020/04/25(土) 19:17:42.17 ID:duoUHH2X0.net
- コンパイラでどう最適化されるのか考えてみ
- 475 :デフォルトの名無しさん :2020/04/25(土) 19:33:44.64 ID:8r0Ych+Ea.net
- 重い非同期メソッドを呼び出す前に不要になる巨大な配列aがあるとすれば、
非同期メソッドを呼び出す前にa = nullにする意味はひょっとしたらあるのかもと思うけど、
>>474の言うとおりそういう猿仕事は本来コンパイラにやって欲しいよね
まあ、そろそろいいのではこの話題。
エクセルのオートメーションとかやる時に鬱陶しいReleaseComObjectがあるけど、
VB6ではああいう感覚でNothingを変数にいちいち入れてたんだよね。
- 476 :デフォルトの名無しさん :2020/04/25(土) 20:35:52.62 ID:I4zKFD3L0.net
- メソッド中のローカルみたいな単純に追跡できる変数なら実際回収されるからね
逆に明示的に生存して欲しい場合のためにGC.KeepAliveなんてのもある
- 477 :デフォルトの名無しさん :2020/04/25(土) 20:36:20.38 ID:45wIze2e0.net
- 超ブラック企業だったサイボウズが、全社員と「ザツダン」してわかった“見えない不満”の本質
https://headlines.yahoo.co.jp/hl?a=20191118-00010003-srnijugo-life
サイボウズの「100人100通りの人事制度」を実現する働き方改革とは?
https://news.mynavi.jp/article/20190902-887250/
『サイボウズ』は社員満足度の高い「働き方改革」をなぜ作れたのか
https://gendai.ismedia.jp/articles/-/67235
諸悪の根源はメールと電話 サイボウズ営業チームの“脱ブラック部署”のノウハウ
https://logmi.jp/business/articles/322356
kintone×感情認識で社員の“HP”を見える化 若手エンジニアが挑む働き方改革
https://logmi.jp/business/articles/322342
サイボウズが副業を真っ先に解禁した理由。社員や会社のメリットとは?
https://nikkan-spa.jp/1602111
毎日が「休日」か「休日明け」か「休日前」 水土日休みの週休3日ベンチャーが「理想の働き方」と話題に
https://nlab.itmedia.co.jp/nl/articles/1907/24/news039.html
- 478 :デフォルトの名無しさん (ワッチョイ 0c01-UN6T):2020/04/25(土) 20:48:23 ID:qFkcGRPu0.net
- >>473
>>434に貼った記事を読むといいよ
どの段階で回収可能になるか詳しく書いてる
- 479 :デフォルトの名無しさん (ワッチョイ 15cf-Ue8b):2020/04/25(土) 20:51:29 ID:pYNu3Cma0.net
- >>478
日本語でおk
- 480 :デフォルトの名無しさん :2020/04/25(土) 21:07:37.42 ID:qFkcGRPu0.net
- >>479
Q: 下のコードでnewしたOtherClassがどのタイミングでGC可能になるか?
1. SomeMethod()のスコープを抜けた後
2. Frob()がreturnした後
3. それ以前
class SomeClass {
...
string SomeMethod(string s, bool reformulate)
{
OtherClass o = new OtherClass(s);
string result = Frob(o);
if (reformulate) Reformulate();
return result;
}
}
答えはこちら
https://devblogs.microsoft.com/oldnewthing/20100810-00/?p=13193
- 481 :デフォルトの名無しさん :2020/04/25(土) 21:10:01.07 ID:UeM9CFrC0.net
- 国会をクイズ会場にするな
初心者向けスレをクイズ会場にするな
- 482 :デフォルトの名無しさん (ワッチョイ 4a33-1Gce):2020/04/25(土) 22:06:04 ID:n8sMf2Gw0.net
- 横から失礼
こんな感じの特異なコードだと、解放対象とさせるためには破棄の段階でnullを入れる必要あり?
(hageをforの中で定義してしまえば1回目の処理後に解放対象とされるだろうけど)
Hoge hage; // hage定義
for(int n=0;n<10000;n++) {
if(n==0) { /* hage初期化 */ }
// 長い処理
if(n==0) { /* hage使用 */ }
// 長い処理
if(n==0) { /* hage使用 */ }
// 長い処理
if(n==0) { /* hage破棄 */ }
// 長い処理
}
- 483 :デフォルトの名無しさん (アウアウウー Sab5-BpYI):2020/04/25(土) 23:13:57 ID:jtuoTa4Ea.net
- >>482
ちょっと何言ってるのか
>/* hage初期化 */
で毎回Hogeのインスタンスを作ってるならインスタンスが変数hageから参照されなくなった時点で
GC対象でしょう
nullいれて何の意味があるの?
- 484 :デフォルトの名無しさん (ワッチョイ b6d6-Op/G):2020/04/25(土) 23:18:32 ID:W2d10YjF0.net
- >>483
初期化されるのはn=0の時だけ
見難いコードだ
- 485 :デフォルトの名無しさん :2020/04/25(土) 23:22:38.19 ID:tZZhc4pea.net
- >>482
確実に解放対象とさせることを意図したソースにするなら「hage.Dispose();」とするべき、
もっと言えばusing(hage = new Hage()){・・・}にすべきだと思うんだけど、
なんでnullを入れるっていう発想になるの?
ソースを読む側に立ってよ、null代入でリソース解放させることを意図してるなんて初見で解釈できるわけないでしょ
それともHageがIDisposableでない?リソースをバカバカ消費するのにIDisposableになっていないとすれば
Hageクラスの設計が間違ってるんでそんなクラスはゴミだと思ってぜんぶ廃棄するのが正しい
using構文だってC#2.0の頃にはもう存在してたし、
VBみたいないちいちNothingを入れる文化なんて20世紀のやり方だし、
nullを代入することに意味があるとか言ってる奴らの脳みそには
メインメモリがいまだに数十MBしか詰まってないと思って無視していいと思う
- 486 :デフォルトの名無しさん :2020/04/25(土) 23:32:05.95 ID:CeBC06vz0.net
- >>485
リソースの破棄とメモリの解放をごっちゃにされても困るんだが
- 487 :デフォルトの名無しさん (ワッチョイ 4a33-1Gce):2020/04/26(日) 00:28:54 ID:1XpAbCKg0.net
- hage.Dispose()でhage自身が解放対象となりましたっけ?
分かりづらいので>>482 のクソコードを少し訂正して配列にしてみます
×Hoge hage; // hage定義
○double[] hage; // hage定義
× if(n==0) { /* hage初期化 */ }
○ if(n==0) { hage = new double[3840*2160]; /* hage初期化 */ }
- 488 :デフォルトの名無しさん :2020/04/26(日) 00:47:35.12 ID:v/oAUwR6a.net
- >>484
あw
>>487
そもそも論としてループで毎回無駄な判定をするのは無駄だし可読性も悪い。
素直に初回だけ分けて書こうよ。
同じ処理を二度書くのは保守性の観点から一般的には悪手だけど、>>482よりマシでしょう。
- 489 :デフォルトの名無しさん (アウアウウー Sa30-R0M4):2020/04/26(日) 01:31:28 ID:6V39WOnVa.net
- >>487
長ったらしい処理+クソデカい配列をいじくりまわす処理で地獄のようなクソコードになりそうだ
繰り返しになるけどリソース(メモリリソース含む)を莫大に消費する処理ならIDisposableとして実装されるべきだし
リソースの解放はDispose()に記述されるべき
>>482>>487のなら配列を扱う部分を別クラスに分けたほうがマシだろう、どうせn==0のとき以外は配列いじらないんだし
class HogeClass : IDisposable {
double[] hage = new double[3840*2160];
public HogeClass() {
// 生成時に必要な処理
}
/// hage破棄時に呼び出し
public void Dispose() {
hage = null;
}
/// hage使用時に呼び出し
public void Method(・・・) {
// その他配列をいじくりまわすために必要な処理各種
}
}
- 490 :デフォルトの名無しさん :2020/04/26(日) 04:32:34.57 ID:Rz7+bFFLa.net
- 旧バージョンのC#をお守りする仕事から何とか逃れたい…
- 491 :デフォルトの名無しさん :2020/04/26(日) 05:07:29.90 ID:flVxc/260.net
- C#フォームプログラムを0から覚えたくて猫でも分かるサイト見てたんですが
7、8章辺りから説明が雑になってきて分からなくなってしまいました。
もう少しわかりやすく順序立てて解説してるサイトはないでしょうか?
- 492 :デフォルトの名無しさん (ワッチョイ 9317-1Gce):2020/04/26(日) 10:18:15 ID:NUpBHqGl0.net
- これを雑だと言うのなら他サイト見ても全部雑だと文句言いそう
- 493 :デフォルトの名無しさん (ワッチョイ 66ad-rGdA):2020/04/26(日) 10:29:18 ID:BFeJAfYX0.net
- >>491
具体的には何がわからないの?
- 494 :デフォルトの名無しさん :2020/04/26(日) 10:54:27.48 ID:LGlXzGY70.net
- >>489
disposeはインスタンスを破棄するメソッドじゃない
- 495 :デフォルトの名無しさん (ワッチョイ b2da-6+K6):2020/04/26(日) 11:33:08 ID:veb1rsQN0.net
- 猫はなんか見づらい、というか目がちかちかする。
- 496 :デフォルトの名無しさん:2020/04/26(日) 11:46:54.16 .net
- あのサイト2000年頃からあったよな
作者は50代くらいか
- 497 :デフォルトの名無しさん (ワッチョイ 4a33-1Gce):2020/04/26(日) 13:34:47 ID:1XpAbCKg0.net
- >>482,487です
質問の仕方が悪かったみたいです
参照を切るやり方やループの作りとかはどうでもよくて
/* hage破棄 */
の段階でhage=null;を入れた場合は、すぐに解放対象とさせることが出来るが
そのまま保持していた場合は、少なくともループ中では解放対象にはならない
というようなことが知りたかったのです
変な質問に付き合わせてすみませんでした
- 498 :デフォルトの名無しさん (ワッチョイ 66ad-rGdA):2020/04/26(日) 13:39:25 ID:BFeJAfYX0.net
- >>497
null代入なんて初心者は考えなくていいよ
- 499 :デフォルトの名無しさん :2020/04/26(日) 13:55:39.53 ID:bgNhzTiH0.net
- >>497
試せばわかるよ
https://dotnetfiddle.net/1cjY1F
(※最適化が必要なのでReleaseモードで)
- 500 :デフォルトの名無しさん (ワッチョイ 4a33-1Gce):2020/04/26(日) 14:58:49 ID:1XpAbCKg0.net
- >>499
意図したとおりの動きが確認できました
別件で不安のあったところも、GCクラスで確認できそうです
ありがとうございました
- 501 :デフォルトの名無しさん :2020/04/26(日) 17:35:11.55 ID:QqkrbzyN0.net
- C#使ったデータ保存で手軽にできる方法ってどういった方法でしょうか?
外部ライブラリ使ってもDB使っても構いません
やっぱりEntity Frameworkでしょうか? それともxsd作ってxmlシリアライズの方が良い?
- 502 :デフォルトの名無しさん :2020/04/26(日) 17:59:27.42 ID:MQj0O2FGM.net
- >>501
json
- 503 :デフォルトの名無しさん (ワッチョイ e2ad-Op/G):2020/04/26(日) 18:28:11 ID:flVxc/260.net
- >>493
Graphics g = e.Graphics;
graphicsプロパティで変数gを宣言してeのグラフィックプロパティを代入とか意味がわからないです
これをするとDrawなんちゃらって関数呼ぶときに文章が短くなるのは何となく分かるのですが
この著者のコンソール編でプロパティにプロパティを代入とか習わなかったから具体的にどういう状態になってんのか分かりません。
後は関数呼び出すときに仮引数に g.DrawLine(new Pen()とかやってますが仮引数でnew クラス型 とかやる手法はこの著者のページでは習ってないはずなのに
何の説明もなく使っていて理解できませんでした。
他にもたくさんありますが、ただただ真似して書けばいい感が強くて理屈で理解できませんでした
- 504 :デフォルトの名無しさん (アウアウウー Sab5-BpYI):2020/04/26(日) 18:37:36 ID:jo9Gp3qca.net
- >>503
ここは質問スレだよw
愚痴は本人に直接伝えた方がいいと思うよ。ここで言ってもしょうがないでしょ。
一般論として、プログラミングの学習では分からないところでいちいち立ち止まってぐだぐだ考えるより
きっと後で何となくわかるようになるだろうと気軽に考えて先に進む方が効率がいいと思うよ。
- 505 :デフォルトの名無しさん (ワッチョイ b6d6-Op/G):2020/04/26(日) 18:48:31 ID:fQRF26+R0.net
- >>503
C#はクラス名とプロパティ名が被ってても良いから、前半の左と右のGraphicsの意味は違う
Graphicsクラスの変数gを定義してeのGraphicsプロパティ(型はGraphicsクラス)を代入してる
後半は
Pen pen = new Pen();
g.DrawLine( pen );
を1行で書いてるだけ。
- 506 :デフォルトの名無しさん :2020/04/26(日) 18:55:17.00 ID:bZwoQ/xt0.net
- そのレベルで不親切だって言うならwebで満足できるものは少なくとも日本語では存在しないんじゃないかな?
書籍でも怪しいと思うけど
プログラムなんてとりあえず真似して書いてその後で色んなところいじってみて動作見て覚えていくもんだと個人的には思ってる
- 507 :デフォルトの名無しさん (ワッチョイ e2ad-Op/G):2020/04/26(日) 19:01:21 ID:flVxc/260.net
- >>505
なるほど。変数gの何のフィールドにプロパティを代入してるか分かりませんが
何となくわかった気がします。
仮引数でnew クラス型とするのは省略形として使えるのですね。
全然言及されてなかったので助かりました。ありがとうございます
- 508 :デフォルトの名無しさん (ワッチョイ ee90-HPZ2):2020/04/26(日) 19:18:30 ID:QqkrbzyN0.net
- >>502
ありがとうございます
調べてみたいと思います
- 509 :デフォルトの名無しさん (ブーイモ MM5e-enkp):2020/04/26(日) 19:18:56 ID:VvmvgJTZM.net
- >>502
それなに?13日の金曜日に出るやつ?
- 510 :デフォルトの名無しさん (アウアウウー Sab5-BpYI):2020/04/26(日) 19:19:43 ID:jo9Gp3qca.net
- >>505の人は機能的に等価だと言ってるだけで省略形なんて言ってないし、そんな風に考えるのは間違ってるよw
- 511 :デフォルトの名無しさん (ワッチョイ 6cac-xf6K):2020/04/26(日) 20:19:36 ID:Qe5iBT5s0.net
- サンプルを一行一行丁寧に解説してほしいってか。。
贅沢やのお
- 512 :デフォルトの名無しさん (ワッチョイ 9cb2-Hjmu):2020/04/26(日) 20:34:57 ID:PGzBFzsM0.net
- まあでも気持ちはわかるわ。おれも初心者の頃はそんな所があった。後から理解は追いついてくるもんだけど、点と点が線になるには、点(小さな知識)を積み上げていくしかないからなあ
- 513 :デフォルトの名無しさん (ワッチョイ f24a-LoFo):2020/04/26(日) 20:39:40 ID:MuBSif2v0.net
- paralell.forで並列処理しながら
同時にプログレスバーを更新したいんですが
どうやったらいいのか、というか可能なのでしょうか?
- 514 :デフォルトの名無しさん (ワッチョイ 382d-JoBq):2020/04/26(日) 20:47:48 ID:h+uhH0sS0.net
- ついでに余計なことを教えて欲しいんだけどさ
こう言うローカル変数に代入しなおすのって、やると参照強度は変わるもんなのかな?
- 515 :デフォルトの名無しさん (ワッチョイ 66ad-rGdA):2020/04/26(日) 20:53:19 ID:BFeJAfYX0.net
- >>514
プロパティへのアクセスがコストかかる時はやることもあるけどね
- 516 :デフォルトの名無しさん (ワッチョイ dc2c-y6ks):2020/04/26(日) 22:27:07 ID:N4kJSNdj0.net
- >>513
どのタイミングで更新するのかわからんが
Progress<T>使えばいいんじゃないかな
- 517 :デフォルトの名無しさん (ワッチョイ e2ad-h7Ku):2020/04/26(日) 23:00:31 ID:VF6JOwzP0.net
- >>513
Interlocked.Incrementで進捗進めて
BeginInvokeで表示更新でいけると思う
- 518 :デフォルトの名無しさん :2020/04/26(日) 23:54:19.94 ID:7OiNIhki0.net
- 全く同じ値なのに違う判定するのってどうしてるんですか?
例えば
public Class SampleClass
{
int x;
}
に対して
var sample=SampleClass(x:1);
var sample2=SampleClass(x:1);
sampleとsample2は値一緒じゃないですか?
でもEqualsだとfalseが出るのは何故?
- 519 :デフォルトの名無しさん (アウアウウー Sab5-BpYI):2020/04/27(月) 00:42:29 ID:ynzlI0MBa.net
- >>518
GUI部品みたいにプロパティーやフィールドがいっぱいあるオブジェクトを想像してみ?
例えばLabel
何をもって等価だと判断するの?
Textが同じなら等価?
Textとサイズが同じなら等価?
TextとForeColorが同じなら等価?
そんなことシステムは忖度できないし、逆に勝手に忖度されても困る。
だからObject.Equalsは同一のインスタンスかどうかを検査するだけ。
xの値で等価かどうか判定したいならそのようにEqualsをoverrideしてください。
- 520 :デフォルトの名無しさん (ワッチョイ b6d6-Op/G):2020/04/27(月) 00:46:26 ID:7GOhLkTu0.net
- >>518
規定では同一のインスタンスかを調べるだけ
値を比較したいなら、Equals()をオーバーライドして比較する部分を自分で実装
https://www.atmarkit.co.jp/ait/articles/1802/28/news028.html
- 521 :デフォルトの名無しさん (ワッチョイ 66ad-rGdA):2020/04/27(月) 01:09:44 ID:+pbqV8lG0.net
- >>518
参照型と値型はそのへん違うから気をつけて
- 522 :デフォルトの名無しさん (ワッチョイ 953a-1Gce):2020/04/27(月) 08:32:01 ID:0MZh1QDY0.net
- 値型もEqualsをオーバーライドしなきゃダメだよ
- 523 :デフォルトの名無しさん :2020/04/27(月) 08:40:50.79 ID:+pbqV8lG0.net
- >>522
別にだめなわけではない
- 524 :デフォルトの名無しさん (スフッ Sd94-cUrQ):2020/04/27(月) 09:01:14 ID:5CwAYVjud.net
- ドットネットではequalsが値比較で、==が参照比較…というのが基本ではあるんだけど、値型に関してはoperatorをoverrideしてあるからほぼ値比較してくれるんだ
- 525 :デフォルトの名無しさん (ワッチョイ 4602-QpYc):2020/04/27(月) 14:19:07 ID:O/Rc+c/Z0.net
- でもさ、俺のおちんちんと君のおちんちんは同じじゃないよね?
ペロペロしてもらう時に俺のおちんちんじゃなくて君のおちんちんだったら無意味だよ
- 526 :デフォルトの名無しさん :2020/04/27(月) 14:56:44.28 ID:adSG+GOZM.net
- >>513
その通りにコードを書けばいいと思うよ
- 527 :デフォルトの名無しさん :2020/04/27(月) 18:30:42.73 ID:pzY5bj450.net
- >>524
>ドットネットではequalsが値比較で、==が参照比較…というのが基本
ソースは?
- 528 :デフォルトの名無しさん (ワッチョイ f24a-LoFo):2020/04/27(月) 19:48:39 ID:sEi51MkM0.net
- >>516 >>517
Progress<T>だとどうも上手くいかなかったので
Interlocked.Incrementを試してみます
ありがとうござました
- 529 :デフォルトの名無しさん :2020/04/27(月) 21:57:08.78 ID:5CwAYVjud.net
- >>527
ここらへんかな
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/statements-expressions-operators/how-to-define-value-equality-for-a-type
- 530 :デフォルトの名無しさん :2020/04/27(月) 22:18:43.99 ID:VtI6ihiD0.net
- structの時もそうだったがここは答える方が馬鹿ばっかなんだな
- 531 :デフォルトの名無しさん :2020/04/27(月) 22:19:58.04 ID:azrm73Nod.net
- >>529
それのどこに?
- 532 :デフォルトの名無しさん (ワッチョイ ac63-aCTA):2020/04/27(月) 22:40:25 ID:ZyoVYLj90.net
- 言語仕様策定側のガイドラインがあるなら聞きたい、って話なのに言語利用側のガイドライン見せられても、そりゃ?ってなるよね
- 533 :デフォルトの名無しさん (ワッチョイ 082c-cUrQ):2020/04/28(火) 06:23:15 ID:sVyB4x530.net
- どうせみんな死ぬんよ(´・ω・`)
- 534 :デフォルトの名無しさん :2020/04/28(火) 08:52:13.97 ID:zuokQMKDa.net
- >>533
い粁
- 535 :デフォルトの名無しさん (スプッッ Sd9e-XvBq):2020/04/28(火) 10:33:47 ID:+VZERS3Cd.net
- ZxingでPDFからバーコードを読み取りたいのだけど
PDFファイルをbinaryBitmapに変換できるフリーのライブラリってある?
- 536 :デフォルトの名無しさん (アウアウエー Sa6a-0GGu):2020/04/28(火) 10:35:50 ID:zAZN/f3sa.net
- ある
- 537 :デフォルトの名無しさん (ワッチョイ 7cda-sqO3):2020/04/28(火) 10:40:48 ID:xYOP5bIU0.net
- Windows.Data.Pdfで出来るか?
- 538 :デフォルトの名無しさん :2020/04/28(火) 18:35:42.95 ID:JNpMj+Oe0.net
- "Aが1,3,5,6のどれかならtrue"
みたいな判定をswitch、Contains()使わずに実現する方法
- 539 :デフォルトの名無しさん (ワッチョイ 082c-cUrQ):2020/04/28(火) 18:43:43 ID:sVyB4x530.net
- TrueForAll…
- 540 :デフォルトの名無しさん (アウアウウー Sa30-R0M4):2020/04/28(火) 19:28:54 ID:P/sctXtYa.net
- 取りうる値の範囲が整数で最大でも63なら
(((0b_110101_0 >> A) & 1) == 1) とか
- 541 :デフォルトの名無しさん (ワッチョイ 9317-1Gce):2020/04/28(火) 19:31:51 ID:tz02eWdG0.net
- 素直にContains使った方が良いんじゃね
Contains使えない理由でもあるの?
- 542 :デフォルトの名無しさん :2020/04/28(火) 20:23:59.00 ID:fttQZMFx0.net
- 学校の課題なんじゃね?
- 543 :デフォルトの名無しさん :2020/04/28(火) 20:45:53.08 ID:CB5xdhwI0.net
- ifとorでやれよ
- 544 :デフォルトの名無しさん :2020/04/28(火) 21:00:55.21 ID:nnss28av0.net
- array.Any(x => x.Equals(A))
Array.Exists()とか単純なfor loopとかいろいろやり方はあるよね
- 545 :デフォルトの名無しさん :2020/04/28(火) 21:20:15.28 ID:LE+4zw960.net
- var result = value switch ❴
1 or 3 or 5 or 6 => true,
_ => false,
❵;
C#9だけど
あ、switch式も駄目ですか
- 546 :デフォルトの名無しさん :2020/04/28(火) 21:39:44.15 ID:ozSqZJZ1a.net
- bool Hoge(int n)
{
var table = new[] { false, true, false, true, false, true, true };
try
{
return table[n];
}
catch { }
return false;
}
クイズとしてはチャレンジングな部類じゃないねw
- 547 :デフォルトの名無しさん :2020/04/28(火) 21:46:29.35 ID:9hpTUu+W0.net
- 頭いいな
switchを使わないってとこから単純なif判定も使えない
Containsを使わないってことから{1,3,5,6}みたいなコレクション自体使えない
って意図で考えてたけどその解法は気づかなかった
- 548 :デフォルトの名無しさん :2020/04/28(火) 21:55:35.85 ID:LE+4zw960.net
- 表引きは昔から高速化目的でよく使われる
sin/cosなんかを演算で求めるんじゃなくて0〜90度まで全部コンパイル前に計算しておいてコードに埋め込んでおくとか
メモリ食うことになるしsin/cosみたいな例だと0.5度無理みたいなデメリットはあるけど状況によってはそういうのが有効だったりする
- 549 :デフォルトの名無しさん (ワッチョイ b2da-6+K6):2020/04/28(火) 23:34:39 ID:C/CcLAW60.net
- 個人的には >>544 の方法が手っ取り早く感じる。
public static bool Hoge(int A, int[] source)
{
return source.Any(s => s == A);
}
- 550 :デフォルトの名無しさん :2020/04/29(水) 00:46:32.86 ID:0T/hrPb30.net
- 普段ならそれだよ
でも人様に10年はええなんて言える人が出すお題に普通に答えても…ってことで少しひねった回答しただけ
- 551 :デフォルトの名無しさん (ワッチョイ c7da-ipCf):2020/04/29(水) 01:40:12 ID:7lEbqk+c0.net
- .Net Core でCe
- 552 :デフォルトの名無しさん :2020/04/29(水) 01:47:19.07 ID:7lEbqk+c0.net
- .Net Core で CefSharp 使いたいのですが、nuget で参照追加しても、コンパイル時にエラーが発生します。
https://i.imgur.com/kGS4YK6.jpg
どうすれば動くのでしょうか?
- 553 :デフォルトの名無しさん :2020/04/29(水) 08:02:27.75 ID:kQQTqavqa.net
- cef sharpとか初耳だわ
プレリリース版VSじゃないと対応してないとか?
- 554 :デフォルトの名無しさん :2020/04/29(水) 16:05:40.25 ID:DmNhs8y10.net
- >>535-537
GhostscriptSharp で出来た
https://github.com/mephraim/ghostscriptsharp/blob/master/Tests/GhostscriptSharpTests/GhostscriptSharpTests.cs
- 555 :デフォルトの名無しさん (ワッチョイ df02-h83k):2020/04/29(水) 20:05:47 ID:u+omc4b+0.net
- 今後業務用のWEBアプリを作るときはMVCとRazorPagesとBlazorだと皆さんはどれを選択しますか?
クラサバシステムのWEB化の話があるので今後どういう勉強をしておくか迷っています
(MVCやJSの開発経験はあり)
- 556 :デフォルトの名無しさん (ワッチョイ e701-WK8b):2020/04/29(水) 20:10:06 ID:3WB/6cAD0.net
- OWIN?
- 557 :デフォルトの名無しさん :2020/04/29(水) 20:34:00.93 ID:u+omc4b+0.net
- >>556
恥ずかしながらOWINについて知らなかったので調べましたが
アプリが動く環境についてのことであれば
必要であればこちらで整えることができる状況です
- 558 :デフォルトの名無しさん (ワッチョイ e724-ts7H):2020/04/29(水) 23:33:34 ID:ZtFhb2uq0.net
- ファイル圧縮解凍ライブラリについてなのですが、C#の場合はSharpCompressがベストなのでしょうか?
SevenZipSharpという7zipのラッパーもありこちらの方が良さそうかと思いきや、一見すると未完成なようにも見えますが
- 559 :デフォルトの名無しさん :2020/04/30(木) 00:13:20.54 ID:+bpYEB3E0.net
- 君の言うベストの要件は何?
System.IO.Compression.ZipFileで駄目なところは何?
- 560 :デフォルトの名無しさん :2020/04/30(木) 01:02:25.49 ID:I9f6mjLE0.net
- >>558
要件次第だけど、7z他多数のフォーマットに対応したいなら
Frost Moon Projectさんの、7-zip32.dll/7-zip64.dll/7z.dll文字化け対策版
これの7z.dll版がlzhやrar等に対応してる + 統合アーカイバプロジェクト系で自分は使いやすかった
SevenZipSharpも確か最初試したけど、普通に使えた気がする
- 561 :552 (ワッチョイ c7da-ipCf):2020/04/30(Thu) 01:36:48 ID:cGNlLD3W0.net
- https://github.com/cefsharp/CefSharp/issues/2796
の、kpreisser という人のやり方で出来ました。
- 562 :デフォルトの名無しさん (ワッチョイ a72c-XDUq):2020/04/30(Thu) 06:38:09 ID:y9JRI7g10.net
- >>558
多分SharpCompressの方が機能は充実してる
SevenZipSharpはインメモリ内のマルチボリュームを解凍する術がないっぽかったから捨てた
まぁ一般的な使い方をする分には差はないんじゃないかな
大本の7z.dllは優秀だからパフォーマンスは後者の方が高いのかもしれないが
- 563 :デフォルトの名無しさん:2020/05/01(金) 10:47:14 .net
- SQL Serverとの連繋アプリを作るための参考書探してるんだが
VBのしか見つからないな これ買うしか無いか
WEB情報もVBのしか無いことあるが普通にC#でも使えるTIPS多いし
- 564 :デフォルトの名無しさん (オッペケ Sr5b-fZS3):2020/05/01(金) 10:49:28 ID:KEKGQA87r.net
- むしろVBのがまだあるのか
- 565 :デフォルトの名無しさん :2020/05/01(金) 11:09:25.56 ID:IDkheS130.net
- >>563
ググれば一発だし、ほぼリファレンスはC#やろ
- 566 :デフォルトの名無しさん (アウアウエー Sa9f-ur4w):2020/05/01(金) 11:26:57 ID:k2YlXFh6a.net
- ggrks
- 567 :デフォルトの名無しさん (ワッチョイ e701-1QTE):2020/05/02(土) 12:22:51 ID:QOp3K9V60.net
- 100%このマシンでしか使わないという自作アプリが何個もあり、そのうちの大半が利用しているJson.NetやLog4NetなどのライブラリをLocal Copy = falseにして一か所のdllを使いまわしたいのですが
GACにインストールする以外の方法はないのでしょうか?
LoadLibrary+GetProcAddressを利用すれば可能なんだと思いますがその場合はVSのサポートを得られないですよね
- 568 :デフォルトの名無しさん (スフッ Sdff-EwNI):2020/05/02(土) 12:35:32 ID:7zUXw5kNd.net
- >>567
なんで地獄と呼ばれた状況に戻ろうとするの?
無駄っぽいとかそういう理由?
- 569 :デフォルトの名無しさん (アウアウウー Saab-Ng5p):2020/05/02(土) 13:09:17 ID:TijFnmRAa.net
- >>567
今はコンテナでアプリにOSを丸ごとバンドルする時代ですよ
- 570 :デフォルトの名無しさん (ワッチョイ df02-h83k):2020/05/02(土) 13:10:08 ID:8Sc54whm0.net
- チンポリックインコを使えばいいね
- 571 :デフォルトの名無しさん :2020/05/02(土) 13:54:50.75 ID:k5W2smL8a.net
- >>567
こんなの見つけた
https://www.atmarkit.co.jp/fdotnet/technology/idnfw11_03/idnfw11_03_05.html
やったことないので詳細は知らんけど
- 572 :デフォルトの名無しさん (ワッチョイ 67a7-enXe):2020/05/02(土) 15:54:34 ID:02dRNXb60.net
- >>567
それって触らなくていいプログラムも共通部を触ったら全部更新必須だからね
その時、アレがないコレがない
別のdllがもうダウンロードできない
フレームワークのSDKを再インストールだ→エラーが出て動かない
動かない動かない
っていう地獄絵図しか見えないんだけど
経験浅いの?
- 573 :デフォルトの名無しさん (ワッチョイ 67a7-enXe):2020/05/02(土) 15:58:09 ID:02dRNXb60.net
- なんでもかんでも共通化したらいいってわけじゃないッスよ
関係ないモジュールは関係なくていいの
この自然体が理解できんうちはまだまだ
バナナが欲しかったのにゴリラと森まで付いてくるようなプログラム組んでんだろ?
- 574 :デフォルトの名無しさん (アウアウウー Saab-Ua06):2020/05/02(土) 16:20:59 ID:k5W2smL8a.net
- まあ変なこだわりは捨てて素直にサイドバイサイドにしとけよ、とは率直に思うねw
- 575 :デフォルトの名無しさん (ワッチョイ 8763-68pm):2020/05/02(土) 16:21:26 ID:3EN4KMOZ0.net
- Windowsが25~15年前に通って盛大に失敗したあやまちだけど
人はまたそのあやまちをくり返そうとしているのか…
- 576 :デフォルトの名無しさん (アウアウエー Sa9f-ur4w):2020/05/03(日) 10:58:08 ID:zajIy9nAa.net
- C#を使うともれなくWindowsが付いてきます
- 577 :デフォルトの名無しさん (ワッチョイ 0778-ts7H):2020/05/03(日) 11:04:56 ID:m1rOQWOt0.net
- Windows以外のOSでも動くからそれは間違ってる
- 578 :デフォルトの名無しさん (アウアウエー Sa9f-ur4w):2020/05/03(日) 11:47:56 ID:zajIy9nAa.net
- Windows に WSL BOW 等があるように
C# にまるごと Windows が付いてくる訳じゃないのな?
- 579 :デフォルトの名無しさん (ワッチョイ dfad-3E9b):2020/05/03(日) 14:41:41 ID:O9QRGsEr0.net
- >>576
何を言ってるんですか?
- 580 :デフォルトの名無しさん (ワッチョイ 075f-MN6J):2020/05/05(火) 03:04:26 ID:ODFnlIPd0.net
- >>552
プロジェクト内のファイル書き換えればいける
→https://github.com/cefsharp/CefSharp/issues/1714
もしくはプロジェクトの設定でAnyCPUじゃなくせばおk
- 581 :デフォルトの名無しさん (ワッチョイ 075f-LBUi):2020/05/05(火) 07:23:25 ID:AqRvYPWH0.net
- 【新型コロナ】富士フイルム、ゲイツ財団などからコロナ治療薬の製造受託
https://asahi.2ch.net/test/read.cgi/newsplus/1588319133/
c# プログラマ専用病院を作って、外から鍵かけて、理論的致死量の5倍ぐらい未承認治療薬を投与すれば開発速度が上がると思う。
コンピューターオタクに人権はないから、人権侵害にはならないし、c#プログラミングなんて 5ch とスタックオーバーフローを見れば誰でもできるから、プログラマ不足にもならない。
- 582 :デフォルトの名無しさん :2020/05/12(火) 00:36:35.47 ID:xM8JclQ70.net
- ttps://qiita.com/satorimon/items/5d2e6db7fe938fee958c
C#でこのページを参考にしたコードを書いているのですが、
var squares = contours.Where(a =>
{・・・})
のところの記述の意味がよくわかりません
中で宣言やらreturnやらしていて何がなんだか・・・でもビルドすると正常に動いてます
Whereで調べてもこのような構文での使い方が出てこなくて困っています
- 583 :デフォルトの名無しさん :2020/05/12(火) 00:42:27.10 ID:oML3x0+6p.net
- >>582
ただの無名関数にしか見えないが...
- 584 :デフォルトの名無しさん :2020/05/12(火) 00:43:24.46 ID:SOptQxct0.net
- LINQというものです
- 585 :デフォルトの名無しさん :2020/05/12(火) 00:44:45.73 ID:Rm1nFE+i0.net
- >>582
c# ラムダ式
で検索
- 586 :デフォルトの名無しさん :2020/05/12(火) 00:57:05.47 ID:rr7jvTFY0.net
- Whereで調べても使い方出てくるよ
IEnumerable<string> query = fruits.Where(fruit => fruit.Length < 6);
https://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.where?view=netcore-3.1
ただリファレンスにあるWhereメソッドのシグニチャを
初心者が理解できるようになるまでの道のりは結構長いな
public static IEnumerable<TSource> Where<TSource> (this IEnumerable<TSource> source, Func<TSource,bool> predicate);
- 587 :デフォルトの名無しさん :2020/05/12(火) 01:39:09.58 ID:zR/fg8GXa.net
- 親クラスを参照する方法はありますでしょうか。
Javaで書くなら以下のイメージとなります。
class A {
int val;
class B {
void Method() {
A.this.val; // ここで親クラスを参照したい
}
}
}
- 588 :デフォルトの名無しさん :2020/05/12(火) 01:41:52.90 ID:xM8JclQ70.net
- >>582です
理解出来ましたありがとうございます!
- 589 :デフォルトの名無しさん (ワッチョイ 5b2c-1Non):2020/05/12(火) 01:47:51 ID:ApYFe+qM0.net
- >>587
BはAとインスタンスは独立してるから
BのコンストラクタでAを受け取ってフィールドに置いておくとかする
- 590 :デフォルトの名無しさん (アウアウウー Sa1f-OGoq):2020/05/12(火) 01:54:35 ID:DaJUnBm/a.net
- >>587
ここの記述の通り
https://ja.wikipedia.org/wiki/C_Sharp%E3%81%A8Java%E3%81%AE%E6%AF%94%E8%BC%83#%E5%86%85%E9%83%A8%E3%82%AF%E3%83%A9%E3%82%B9
- 591 :デフォルトの名無しさん :2020/05/12(火) 01:59:01.93 ID:zR/fg8GXa.net
- >>589-590
ありがとうございます
- 592 :デフォルトの名無しさん :2020/05/12(火) 22:22:13.93 ID:/QEFAV670.net
- 参照型の変数ってないんですか?
int c = Properties.Settings.Default.Counter
みたいにエイリアスっぽく使いたいのですが、何かいい方法あるでしょか
- 593 :デフォルトの名無しさん (ワッチョイ be7b-nLaH):2020/05/12(火) 22:35:54 ID:Qqvr4tTg0.net
- >>592
メソッドの返り値にする
private int counter() {return Properties.Settings.Default.Counter;}
- 594 :デフォルトの名無しさん :2020/05/12(火) 22:41:58.71 ID:ApYFe+qM0.net
- エイリアスっていうからC++でいうところのT&型かと思ったけど違うのか?
C#で「参照型の変数」って普通のstring text;とかDataTable table;とかになるけど
- 595 :デフォルトの名無しさん (ワッチョイ 6a6a-oySJ):2020/05/12(火) 23:23:20 ID:qR+vLqM00.net
- ref のことじゃね?
ref var x = ref Xxxxx;
- 596 :デフォルトの名無しさん (ワッチョイ 532f-EoUu):2020/05/13(水) 00:03:03 ID:J5ZD6qBk0.net
- int? のことじゃね?
- 597 :デフォルトの名無しさん :2020/05/13(水) 00:12:10.85 ID:OFLzozUz0.net
- ポインタで全て解決
- 598 :デフォルトの名無しさん :2020/05/13(水) 00:15:30.74 ID:7szTGv5D0.net
- >>596
それはボケ?
- 599 :デフォルトの名無しさん :2020/05/13(水) 00:30:19.64 ID:NaKv0jEn0.net
- 何がしたいのかわからないけど
もし毎回フルで書くのがしんどいとかなら
>>593のやり方が一番安全だと思う
- 600 :デフォルトの名無しさん :2020/05/13(水) 00:36:24.06 ID:WBibu7Ic0.net
- using Counter = Properties.Settings.Default.Counter;
- 601 :デフォルトの名無しさん (ワッチョイ 4da7-071a):2020/05/13(水) 01:04:23 ID:9AF39pvJ0.net
- ポインタが欲しいんだろ
class valInt{
public int val;
}
class valStr{
public string val;
}
って作っとけば?
普段は全く必要ないのに
リフレクション使うとき滅茶苦茶必要になったわ
- 602 :デフォルトの名無しさん :2020/05/13(水) 01:11:53.36 ID:HB9dDlz00.net
- 質問失礼致します。
list1にはboolが3つ入っています。
list2はクラスが3つ入ったリストで、そのクラスにはpublic bool flagが宣言されています。
両方falseの番号が見つかるまで繰り返したいです。
public int Check(){
int x = list1.IndexOf(false);
while (list2[x].flag == true){
x = list1.IndexOf(false, x +1)
}
return x;
}
このコードを書いたのですが、
list2[x].flagが3つ全てtrueだった場合にx+1が範囲外になってエラーが出ていると思われます。
条件に合う物が見つからない時にも何か(-1とか)返せる様にすれば良いのかもしれませんが、どうすればいいのかまったくわかりません。。
どうかヒントだけでも教えて下さい、、
よろしくお願いします。
- 603 :デフォルトの名無しさん :2020/05/13(水) 01:17:14.99 ID:HB9dDlz00.net
- 書き込んだあとに気付いたのですが、もしかしてwhileの中のxはforと違って繰り返すたびに更新されないのでしょうか?
- 604 :デフォルトの名無しさん :2020/05/13(水) 01:32:42.10 ID:RZkyIb9Ia.net
- >>602
何で素直にforでスキャンしないの?
コードを書く前に、まずそれを自分が手動で行う場合の手順を日本語で明確に表現しましょう。
次にそれをコードに変換する。
インデックスを0, 1, 2と増加させて、両方falseならその時のインデックスを返すんでしょ?
何でそれを素直にコードにしないの
- 605 :デフォルトの名無しさん :2020/05/13(水) 01:37:13.82 ID:HB9dDlz00.net
- >>604
すみません、2日間上手く行ってなくて最初はforで試行錯誤してたんですけど何回も調べて書き直してってやってる間になにがなんだかわからなくなってしまいました。。
もう一度forでやってみます!
- 606 :デフォルトの名無しさん :2020/05/13(水) 08:02:36.01 ID:9jM9qfYw0.net
- >>605
プログラミング自体初心者だと思うけど基本的にwhileは使わないほうが良いよ(ちょっとしたミスで無限ループに陥ってフリーズする等バグの温床になる)
あとlist2に入ってるクラスをboolフィールドもう一つ拡張してlist2だけで運用できない?
一応既存の場合ならこういうコードでいい
for (int i = 0; i < list2.Count; i++) //list2を中心に回す
{
if (i >= list1.Count) break; //list1が範囲外になったらforを抜ける
if (!list1[i] && !list2[i].flag) return i; //両方falseならインデックスを返す
}
return -1; //全て探し終えてもfalse && falseが見つからなかったらここに到達してreturn -1
- 607 :デフォルトの名無しさん (アウアウウー Sa1d-/iGY):2020/05/13(水) 09:30:48 ID:RdUH2aEBa.net
- > whileは使わない方が良いよ
それは同意しない
その程度でバグを起こすようなレベルなら何使おうがどうせまともに動くわけない
forをはじめとした、より抽象度の高い他の機能によって自然に代替できるケースにおいてはwhileより他を好むべきだとは思うが、
whileの方が自然なケースってのは存在する
- 608 :デフォルトの名無しさん (ワッチョイ d159-nTbr):2020/05/13(水) 09:31:40 ID:HB9dDlz00.net
- >>606
おはようございます。
丁寧な回答ありがとうございます。
仰る通りプログラム自体初心者です。。
一応あの後、
int index = -1;
for(int i =0; i < list1.Count; i++){
if(list1[i] == false && list2[i].flag == false){
index = i;
return index;
}
return index;
}
という風にやってみました。
合っているかわかりませんが、、一応動作しています。
breakで抜ける方法なども想像すらしてなかったので大変勉強になりました。
教えて頂いたコードの方がが安全そうなので参考にして書き直してみます!
本当にありがとうございました!
- 609 :デフォルトの名無しさん :2020/05/13(水) 10:00:08.37 ID:HB9dDlz00.net
- >>606
うまく動作してると思っていたのですが、list2の要素数が3未満の時にバグってました。。
丸々使わせて頂いたら正常に動作しました。
重ねてお礼申し上げます。。
- 610 :デフォルトの名無しさん (ワッチョイ 2b01-32x/):2020/05/13(水) 10:20:12 ID:tJ/HyvQb0.net
- >>593
さんくす、メソッド使うとはちょと予想外でした、いろいろ応用できそう
>>594
さんくす、C++はいまいちわかってないんですが、こんな感じでしょか
int& c = Properties.Settings.Default.Counter
>>595
いけました、うまくうごきました?さんくすです
>>596
ごめんなさいよくわかりません
>>597
いまさらポインタ
- 611 :デフォルトの名無しさん (ワッチョイ 2b01-32x/):2020/05/13(水) 10:25:24 ID:tJ/HyvQb0.net
- >>599
何度も使う長い変数をさくっと書きたいなあっと、置き換えでいいんですが、どんなのが標準なのかなと
>>600
さんくす、これいいですね
>>601
さんくす、ポインタっぽいことしたいんですが、ちょと中身が理解できませんでした
- 612 :デフォルトの名無しさん :2020/05/13(水) 11:51:27.79 ID:9AF39pvJ0.net
- >>611
だから、クラスでラップするとかしないとポインタっぽいことできないんだってばこの言語
- 613 :デフォルトの名無しさん :2020/05/13(水) 12:42:25.67 ID:KNUhyNjza.net
- 別にエイリアスじゃなくて一時変数でいいじゃん
int hoge = Foo.HogeHageDebuBaka;
書き換えないならそもそもエイリアスである必要がないし、
書き換える必要がある場合もほとんどのケースは一時変数に対する変更を最後に一か所で
元のフィールドなりプロパティーに書き戻すだけで済むと思うんだけど違うのかな。
- 614 :デフォルトの名無しさん :2020/05/13(水) 12:46:03.36 ID:0MZWSb+/0.net
- 単にマクロ的に短く記述したいってことなら使用先のcsファイルの一番上にこれ書いとけばいい
using static c = Properties.Settings.Default.Counter;
- 615 :デフォルトの名無しさん (アウアウエー Sa93-ahgx):2020/05/13(水) 13:28:16 ID:w7cEJ83Ea.net
- Console.Out にデータを書く A.exe (ソース A.cs がある) と
Console.In からデータを読み込む B.exe があるとき
A | B
で B.exe 側で A.exe が書いたデータを取り出せるところまでは確認しました
そこで A.exe の中から
ProcessStartInfo psi = new ProcessStartInfo(){
FileName="B.exe", Arguments="", RedirectStandardInput=true,
RedirectStandardOutput=false, RedirectStandardError=false,
UseShellExecute=false, CreateNoWindow=true, ErrorDialog=false};
Process p = Process.Start(psi);
Console.WriteLine("test");
// p.WaitForExit();
// p.Close();
とすると
>error: ファイルを格納しているボリュームが外部的に変更されたため、開かれているファイルが無効になりました。
というエラーが出てしまいます。
Console.WriteLine("test"); のところを p.StandardInput.WriteLine("test");
にすれば書き込めるらしいのですが出来れば A.cs の変更を極力したくないです
あと
Console.Out.WriteLine("test"); もダメでした
RedirectStandardInput=false, もだめでした
何か使い方間違ってますか?
- 616 :デフォルトの名無しさん (JP 0H13-2td9):2020/05/13(水) 13:30:17 ID:9ouyGW4jH.net
- 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
- 617 :デフォルトの名無しさん :2020/05/13(水) 13:49:55.90 ID:uqtilrQeM.net
- >>615
var tmp = Console.Out;
try {
var p = Process.Start(psi);
Console.SetOut(p.StandardInput);
Console.WriteLine("hoge");
p.WaitForExit();
}
finally {
Console.SetOut(tmp);
}
- 618 :デフォルトの名無しさん (ワッチョイ 2b01-32x/):2020/05/13(水) 16:30:12 ID:tJ/HyvQb0.net
- >>612
C++の上位互換で、わざわざ使わないだけで使おうと思えば使えるものだとおもってました、ポインタ
>>613
さんくすね、それだとFoo.HogeHageDebuBakaが変化したときにやばいかなと
>>614
さんくすね、プリプロセッサで置換みたいなので大丈夫だと思うけど、staticが入るとどう変わるんだろか
- 619 :デフォルトの名無しさん :2020/05/13(水) 16:42:19.79 ID:9jM9qfYw0.net
- ポインタは使えるけどC++と違ってstaticなオブジェクトですらガベコレによってアドレス変わる可能性が常にあるから
長寿命なポインタというのは自前でガベコレ管轄外のアンマネージドメモリを確保しない限り成立しない
- 620 :デフォルトの名無しさん (ワッチョイ 5b84-57Gp):2020/05/13(水) 17:08:14 ID:D3xPcSfY0.net
- >>602
whileのロジックが足りない
while((x != -1 && x < list1.Count) && list2[x].flag)
にするとlist1の要素超えなくて見つからないと「-1」が返ると思うよ
- 621 :デフォルトの名無しさん :2020/05/13(水) 17:24:13.51 ID:D3xPcSfY0.net
- >>615
確認していないので適当だけど、ProcessStartInfoで自分の標準出力を相手に
リダイレクトする指示をしているのに、自分の標準出力に書き出すメソッドを
使っているので、リダイレクトじゃない状態で出力されて相手がリダイレクト元を
見失っているんじゃないかな
>>617が書いてくれたのは書き込む前に自分の標準出力をリダイレクトに
切り替えているので、簡単にやるならば「p.StandardInput.WriteLine」を使うのが
良いんじゃないかな
あ、どうしてもConsole.WriteLineじゃなきゃダメって言うならば>>617の方法に
なるだろうけど
- 622 :デフォルトの名無しさん :2020/05/13(水) 17:39:16.20 ID:VSt/R8YQ0.net
- Ruby では普通に、print, puts メソッドで出力したら、
標準出力・$stdout に出力される
どこに出力するかなど、考えたこともない
- 623 :デフォルトの名無しさん (ワッチョイ 115f-hrec):2020/05/13(水) 17:51:43 ID:48KyBdoc0.net
- >>622
相変わらずバカだね
- 624 :622 (ワッチョイ 7f2c-JcAG):2020/05/13(水) 18:25:56 ID:VSt/R8YQ0.net
- 標準出力以外を使う場合は、標準エラーに出力する時だけ。
標準出力なら、パイプ・ファイルへのリダイレクトも使える
a.rb | b.rb パイプ
a.rb > b.rb 上書き
a.rb >> b.rb 追記
- 625 :デフォルトの名無しさん (ワッチョイ 2b01-32x/):2020/05/13(水) 19:32:00 ID:tJ/HyvQb0.net
- >>619
なるほどね、実質ポインタは使い物にならないね、何が出てくるかわからないとか
- 626 :デフォルトの名無しさん (ワッチョイ ff01-vB/y):2020/05/13(水) 20:56:37 ID:WBibu7Ic0.net
- >>624
rubyやpythonならspawnやpopen使って生成した
子プロセスの標準入出力の話
- 627 :デフォルトの名無しさん :2020/05/13(水) 21:18:36.78 ID:9jM9qfYw0.net
- >>625
ローカル値型変数ならその関数抜けるまではスタック上にあることが保証されるからその関数内限定でCと同じように扱える
バイト配列等参照型もfixed (byte* ptr = &bytes[0]) {}と囲っている間はガベコレにアドレス移動させない通知を出せばそのスコープ間では扱える
ポインタフィールドを持たせたいとかになるとさっき言ったようなアンマネージドメモリを利用するしかないのでC#では実質不可能になってくる
- 628 :デフォルトの名無しさん (ササクッテロレ Sp63-5XO3):2020/05/14(Thu) 02:19:30 ID:2LmxtE+Tp.net
- C#に、lispでいうmapcar関数のようなものはありますか?
- 629 :デフォルトの名無しさん (ワッチョイ ff01-vB/y):2020/05/14(Thu) 03:11:58 ID:HxdbbI2M0.net
- >>628
Enumerable.Select()
- 630 :デフォルトの名無しさん (オッペケ Sr93-5iCk):2020/05/14(Thu) 10:45:17 ID:n+ookAJTr.net
- c#頑張ってきたのでc++ちょっとかじって浮気してきまっす!
挫折したら秒で戻ってきまっす!
- 631 :デフォルトの名無しさん :2020/05/14(木) 11:26:58.59 ID:ztWr1bjJ0.net
- 目的がかなり違う言語だから気をつけなされ
- 632 :622 (ワッチョイ 7f2c-JcAG):2020/05/14(Thu) 14:04:08 ID:FSEZeoAj0.net
- >>626
Ruby では、`コマンド`、system(コマンド)などは同期処理だけど、
spawn は非同期だから、すぐに子プロセスのPID が返ってくる
だから、Process.waitpid で、子プロセスの終了を待ち合せる必要がある
p pid = spawn('uname') #=> 1142
Process.waitpid pid
出力
Linux
- 633 :デフォルトの名無しさん (アウアウウー Sa31-7tKh):2020/05/14(Thu) 14:53:15 ID:0DpJdKOEa.net
- List<string>をfor文中で繰り返し初期化して使用したいのですが、
List<string> 変数 = new List<string>()
で出来ますか?
それともfor文の最後でclearしないといけませんか?
ネットにソースが見当たらないので質問しました。ソースもあるよという方はその内容も教えていただきたく。
お願いいたします。
- 634 :デフォルトの名無しさん :2020/05/14(木) 15:31:14.00 ID:0NVqPTt90.net
- forの中でList<string> 変数 = new List<string>()とループ毎に確保しているのなら終わり際にClearは書かなくていい
文字通りnewだからね
ただパフォーマンス的にはforの前で作ったリストをループ中の最後にClear()して使いまわす方が若干効率は良くなる
一般的な用途であれば差にもならない差だから前者で良いけど
- 635 :デフォルトの名無しさん :2020/05/14(木) 16:08:02.92 ID:0DpJdKOEa.net
- >>634
なるほど、ありがとうございます。
- 636 :デフォルトの名無しさん (ワッチョイ 5fb2-mth5):2020/05/14(Thu) 16:24:15 ID:oGs32I5W0.net
- >>630
おかえり
- 637 :デフォルトの名無しさん (ワッチョイ 5fb2-mth5):2020/05/14(Thu) 16:24:31 ID:oGs32I5W0.net
- >>632
さよなら
- 638 :デフォルトの名無しさん (ワッチョイ 5fb2-mth5):2020/05/14(Thu) 16:25:38 ID:oGs32I5W0.net
- >>635
clearいれるだけ処理遅くなるぞ。不要や
- 639 :デフォルトの名無しさん (ワッチョイ 5fb2-mth5):2020/05/14(Thu) 16:26:53 ID:oGs32I5W0.net
- >>635
C#にはGC機能があるから
- 640 :デフォルトの名無しさん (ワッチョイ 2b01-32x/):2020/05/14(Thu) 16:40:09 ID:IzazKMsN0.net
- >>627
限定的ながらもポインタ使えるんだね、少し>>601がわかった希ガスサンクス
- 641 :デフォルトの名無しさん :2020/05/14(木) 16:56:49.51 ID:0DpJdKOEa.net
- >>639
GC機能ってfor文だけでは機能しないと思っていたんですが、初期化時点で古いのは解放されると思っていいんでしょうか?
- 642 :デフォルトの名無しさん (ワッチョイ 9f9e-X6oS):2020/05/14(Thu) 17:09:46 ID:IJMYY1560.net
- >>638
ここは初心者が回答してみるスレじゃないぞw
- 643 :デフォルトの名無しさん (ワッチョイ 5fb2-mth5):2020/05/14(Thu) 17:11:23 ID:oGs32I5W0.net
- >>642
はあ?ループ中のリスト毎回clearするなんてアホなコードお前しか書かないだろw
- 644 :デフォルトの名無しさん :2020/05/14(木) 17:17:42.65 ID:PBygD1y70.net
- それは言えてるな
- 645 :デフォルトの名無しさん (ワッチョイ 4124-gIXh):2020/05/14(Thu) 17:23:39 ID:0NVqPTt90.net
- ListのClearは内部バッファの中身をデフォルトクリアしてCount = 0とするだけであってバッファのキャパ自体はそのまま
Clear後に利用する際にそのListインスタンスのキャパ以下の利用であれば内部でbuffer = new T[capacity]みたいな処理が走らないから効率化される可能性があるという話
一般的なプログラマであればこのようなことを考える意味は皆無なのでnewし直すが正解で良い
- 646 :デフォルトの名無しさん (ワッチョイ 9f9e-X6oS):2020/05/14(Thu) 17:30:23 ID:IJMYY1560.net
- 笑えるwww
今度からいちいちnewしてる馬鹿いたら、
あーこいつは初心者が回答してみるスレの住人だと分かっていいなw
- 647 :デフォルトの名無しさん (アウアウウー Sa31-7tKh):2020/05/14(Thu) 17:32:02 ID:0DpJdKOEa.net
- >>645
承知しました。
- 648 :デフォルトの名無しさん :2020/05/14(木) 17:36:51.73 ID:5fNjH7LKM.net
- >>646
恥ずかしい奴
- 649 :デフォルトの名無しさん :2020/05/14(木) 17:41:31.72 ID:IJMYY1560.net
- >>648 ←ループの中でいちいちnewしてたnewtype発見w 初心者スレおもしれーwww
- 650 :デフォルトの名無しさん :2020/05/14(木) 17:45:22.91 ID:HxdbbI2M0.net
- >>645
毎回newしたほうが効率がいいケースと
1つのListをClearして使い回したほうが効率がいいケースとそれぞれあるよね?
- 651 :デフォルトの名無しさん :2020/05/14(木) 17:49:33.37 ID:OtqKph2Y0.net
- たまに勘違いしている人がいるみたいだが、このスレは「初心者用」のスレだから
質問者も回答者も「初心者」だよ
>>650
条件が詳しく書いてないんだから「場合によって使い分ける」
このスレでは「問題なく動けばいい」
- 652 :デフォルトの名無しさん (ワッチョイ eb36-5iCk):2020/05/14(Thu) 17:56:08 ID:PBygD1y70.net
- まあ、newし直すのは意味はあるけど、
気になるのは同じ変数名を使い回してないかってことくらいやな
まあ、自分だけのコードなら好きにすればとしか
- 653 :デフォルトの名無しさん :2020/05/14(木) 17:59:19.41 ID:IJMYY1560.net
- そういや初期のjavaの実装がそうだったなw 全部new。 糞おせーw
C#を実装したのがおまえらじゃなくてfastcall使いまくるヘジで助かったぜ。
- 654 :デフォルトの名無しさん :2020/05/14(木) 19:05:04.03 ID:oGs32I5W0.net
- ID:IJMYY1560
今日の基地外
- 655 :デフォルトの名無しさん :2020/05/14(木) 19:06:50.12 ID:5fNjH7LKM.net
- >>653
違うだろ?「勉強になりました。」と素直に謝ればOK
- 656 :デフォルトの名無しさん (ワッチョイ 9f9e-X6oS):2020/05/14(Thu) 20:07:00 ID:IJMYY1560.net
- なんだもう自演煽りしかできないのか。情けない。
逐一newがいかに速いか知ったかして語ればいいのにw もっと初心者スレらしくアホを晒せw
- 657 :デフォルトの名無しさん (ブーイモ MM81-mth5):2020/05/14(Thu) 20:31:18 ID:5fNjH7LKM.net
- >>656
違うだろ?「勉強になりました。」と素直に謝ればOK
- 658 :デフォルトの名無しさん :2020/05/14(木) 23:37:20.23 ID:oGs32I5W0.net
- >>656
こーゆうレガシーな情報をアップデート出来ない老害コーダーがスコープとか意識出来ずにスパゲッティコード量産していくんだろうな。
- 659 :デフォルトの名無しさん :2020/05/14(木) 23:59:13.36 ID:IXDIM6PP0.net
- List<string> 変数 = new List<string>();
for(;;){
// 処理
変数.Clear();
}
for(;;){
List<string> 変数 = new List<string>();
// 処理
}
これで言い争い?
- 660 :デフォルトの名無しさん (ワッチョイ cf61-gjhq):2020/05/15(金) 00:33:19 ID:mc9+JSH60.net
- さうです。
- 661 :デフォルトの名無しさん (ワッチョイ 9f9e-X6oS):2020/05/15(金) 06:10:46 ID:QqRlTuRs0.net
- 言い争いなんか誰もしてません。ここは無知無双を観察するスレです。
clear()は遅いですw スパゲッティになるので逐一newしてますw java思想は正しいですw ヘジは老害コーダーですってwww
- 662 :デフォルトの名無しさん (ワッチョイ df6a-X4oJ):2020/05/15(金) 08:09:40 ID:mZ/V4tLT0.net
- 上でも書かれてるけどClearってcount=0にしてるだけだろ?
- 663 :デフォルトの名無しさん (アウアウウー Saaf-Wcp/):2020/05/15(金) 08:38:30 ID:4F5qAPuFa.net
- 怪しい時には実装にあたったほうがいいよ
https://referencesource.microsoft.com/#mscorlib/system/collections/generic/list.cs,ca7bce81a50b0aeb,references
count=0だけじゃなくて配列の個々の値も初期値に戻してる
まあそれでも_sizeがかなり大きくない限りは参照型のインスタンスを都度生成して生成してヒープに置くよりローコストだと思うけど
- 664 :デフォルトの名無しさん (ワッチョイ 4f63-4oRg):2020/05/15(金) 09:26:05 ID:EzimMGOi0.net
- 争いと表現するのもおこがましさを感じる低次元さ
- 665 :デフォルトの名無しさん (ワッチョイ 9f9e-X6oS):2020/05/15(金) 10:16:11 ID:QqRlTuRs0.net
- 若者の夢は壊しちゃダメですよ。プライドはとても高いんですから。
あっ、老害コーダヘジのおれが考える現代風コンパイラのデータ構造の再利用実装についての動画を置いときますねw
https://channel9.msdn.com/Blogs/Seth-Juarez/Anders-Hejlsberg-on-Modern-Compiler-Construction
- 666 :デフォルトの名無しさん (ワッチョイ 0b90-gsGE):2020/05/15(金) 10:43:10 ID:0cESgAsr0.net
- 議論でとりあえず有名人の名前出したり話すれば、有利になると思ってる単細胞な発想はやめよう
- 667 :デフォルトの名無しさん (ワッチョイ 3fac-5iCk):2020/05/15(金) 11:04:04 ID:SPdgeRtp0.net
- そろそろ誰かが比較出してくれるんじゃね
それで決着だろ
- 668 :デフォルトの名無しさん (ドコグロ MM4b-cWUa):2020/05/15(金) 11:13:54 ID:/Y86RUc5M.net
- >>659
俺なら上を採用する場合一回分無駄になるけどループの先頭(可能であれば使う直前)にClear()を呼ぶ
- 669 :デフォルトの名無しさん (ワッチョイ 459b-gIXh):2020/05/15(金) 13:18:50 ID:+lfXgI6Y0.net
- 名前、年齢、部署を表示するListViewで、マウスを当てるとポップアップ表示されるように
したく、以下のようにコーディングしました
ListViewItem lList = new ListViewItem(name);
List.ToolTipText = name //ツールチップの設定
ListViewItem.ListViewSubItem lvs = UrlList.SubItems.Add(age);
lvs.Tag = txtSearchWord.Text; //ツールチップの設定
ListViewItem.ListViewSubItem lvs = UrlList.SubItems.Add(section);
lvs.Tag = txtSearchWord.Text; //ツールチップの設定
一応これでポップアップするようになったのですが、位置がリストの表示位置と
離れすぎているのでもう少し「リストの文字に覆いかぶさるように」調節したいのですが
方法はありますでしょうか?
- 670 :デフォルトの名無しさん (ワッチョイ a72c-CX6h):2020/05/15(金) 13:21:44 ID:TG5diAlh0.net
- たぶんC#書いてると上を採用するケースは少ないと思う
- 671 :デフォルトの名無しさん :2020/05/15(金) 13:44:50.97 ID:OlE2WbGda.net
- >>669
https://dobon.net/vb/dotnet/control/lvitemtooltip.html
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.listviewitem.tooltiptext
- 672 :デフォルトの名無しさん (ワッチョイ d379-x0Oq):2020/05/15(金) 13:52:25 ID:/bV5Wl+o0.net
- でも下を採用すると
newとGCと場合によってはキャパ超えの処理が複数回
ループ毎に発生する
- 673 :デフォルトの名無しさん (ワッチョイ 2b2c-2D9n):2020/05/15(金) 13:53:09 ID:1rmq22iw0.net
- .NETの範囲内だとToolTip自分で設定してマウスオーバーした時に自分でShowするぐらいしかないのかな
https://docs.microsoft.com/en-us/windows/win32/controls/ttn-show
Win32的にはTTN_SHOWでSetWindowPosしろって書いてある
ちなみにTTN_SHOWはListViewの派生クラスでWndProcオーバーライドすると捕まえられる
- 674 :デフォルトの名無しさん (ワッチョイ ff01-vB/y):2020/05/15(金) 14:08:20 ID:zOp0aFPX0.net
- >>669
WPFだと表示位置を調整可能だけどWinFormだとデフォルトでは設定できないので
デフォルトのToolTipをオフにして自分でマウスイベント使ってToolTipを表示する
設定するToolTipのShow()メソッドで位置調整可能
- 675 :デフォルトの名無しさん (ワッチョイ 6d2d-imz8):2020/05/15(金) 15:37:07 ID:Szckw36p0.net
- オブジェクト複製の方法(ディープコピーやシャローコピー)を明示的に定義したインターフェイスはありますか
- 676 :デフォルトの名無しさん :2020/05/15(金) 15:54:49.38 ID:kU/eypzIM.net
- ない
ICloneableがまさにコピー方法等の規定がなく役に立たないために非推奨となったが、特に代替となるインターフェイスはない
MSとしてはコンストラクタ引数にコピー元オブジェクトを渡すことによるコピーを推奨しており、
シャローコピーなのかディープコピーなのかはそのコンストラクタのドキュメントに書くのがよいと思われる
- 677 :デフォルトの名無しさん :2020/05/15(金) 16:02:55.82 ID:TSXqI5G8a.net
- あったとして使い道を思いつかないw
- 678 :デフォルトの名無しさん :2020/05/15(金) 16:04:17.52 ID:Q6HDAvk8M.net
- ICloneableの一般化は有名なアンチパターン
- 679 :デフォルトの名無しさん (ワッチョイ 2b2c-2D9n):2020/05/15(金) 19:43:40 ID:1rmq22iw0.net
- そんな推奨あったっけ
コンストラクタはasyncにできないし直接デリゲートにできないしで扱いづらいんだよね…
- 680 :デフォルトの名無しさん (ワッチョイ 4da7-071a):2020/05/16(土) 02:07:37 ID:iEtxjNqq0.net
- CS1628 :匿名メソッド、ラムダ式、 またはクエリ式内では、refまたはoutパラメーター 'parameter'で使用できません.
ってエラーが出たらどうしたらいいですか?
- 681 :デフォルトの名無しさん (ワッチョイ 2352-ri7+):2020/05/16(土) 02:55:26 ID:XDh9Q16+0.net
- >>680
どうしたらいいですか?
→具体的にエラーが発生した場所のコードを示して質問する。
- 682 :デフォルトの名無しさん (ワッチョイ 3bad-fRvC):2020/05/16(土) 02:55:57 ID:hzvIc6mG0.net
- そのメッセージの通りじゃね?
- 683 :デフォルトの名無しさん (ワッチョイ 4da7-071a):2020/05/16(土) 07:51:09 ID:iEtxjNqq0.net
- >>682
でも値を戻して欲しいんです
- 684 :デフォルトの名無しさん :2020/05/16(土) 08:33:36.19 ID:1poti3B0M.net
- 対処方法も書いてあるが?
https://docs.microsoft.com/ja-jp/dotnet/csharp/misc/cs1628
- 685 :デフォルトの名無しさん :2020/05/16(土) 09:03:08.49 ID:iEtxjNqq0.net
- >>684
よくわかりませんでした
- 686 :デフォルトの名無しさん (ワッチョイ d978-gIXh):2020/05/16(土) 09:13:21 ID:YgFCYzEo0.net
- 質問者が理解できない(理解しようとしない)だと回答する意味ねぇわな
- 687 :デフォルトの名無しさん (ワッチョイ 97ad-SWFu):2020/05/16(土) 09:36:21 ID:GaPEU8I00.net
- MSDNは日本語版で読むと意味不明だから、英語で読んだほうが良いよ。
- 688 :デフォルトの名無しさん (ワッチョイ 3bad-fRvC):2020/05/16(土) 09:47:43 ID:hzvIc6mG0.net
- >>683
だからコードをさらしてみ
- 689 :デフォルトの名無しさん (ワッチョイ 3bad-fRvC):2020/05/16(土) 09:48:00 ID:hzvIc6mG0.net
- >>687
docsね
- 690 :デフォルトの名無しさん (ドコグロ MM7b-cWUa):2020/05/16(土) 10:36:14 ID:brzmqlgbM.net
- >>687
この程度ならたいして変わらなくね?
て言うか
> このエラーを回避するには、ローカル変数を使用するか、別のコンストラクトを使用します。
を理解 {でき|しようとし} ない奴が
> To avoid this error, use a local variable or some other construct.
を理解できるとは思えないけど…
- 691 :デフォルトの名無しさん :2020/05/16(土) 10:50:18.03 ID:5tLRWKNk0.net
- こんな日本語を理解しようとするのは時間の無駄
Ref または out パラメーター 'parameter' 匿名メソッド、ラムダ式、またはクエリ式の内部を使用することはできません。使用する場合、このエラーが発生した、 in、 ref、またはout匿名メソッド ブロックの内部でパラメーター。
- 692 :デフォルトの名無しさん :2020/05/16(土) 11:26:30.30 ID:GaPEU8I00.net
- >>689
docsか、すまん。
>>690
よく読めば一瞬で謎に陥る。
>>691
の部分が一番やばい。
俺Xamarin最近いろいろやってるからドキュメントに当たるんだけど、もう少しなんとかならんかなあれ。
MVPあたりに音頭取らせて翻訳をみんなに手伝ってもらえばいいのに。コントリビューション記載してくれるなら権利放棄して喜んでやってくれるだろうに。
- 693 :デフォルトの名無しさん (ワッチョイ 97ad-SWFu):2020/05/16(土) 11:31:27 ID:GaPEU8I00.net
- 安易にgithubのイシュー切れて、好き勝手文句を書いたように見えたから前回は問題になったんだし、githubでやるより、翻訳するにあたって当たり前のツールで対訳は作るべきだと思うんだがなぁ。
何もTradosを買えって言うわけじゃないけど、何か機械翻訳ではなくてメモリ翻訳+人間でやってほしい感じがするわ。
- 694 :デフォルトの名無しさん (ワッチョイ 5fb2-mth5):2020/05/16(土) 11:58:34 ID:l25Hva970.net
- >>683
returnで返せばええやん
- 695 :デフォルトの名無しさん (ドコグロ MM51-cWUa):2020/05/16(土) 12:16:10 ID:Xg9MPSsRM.net
- >>691
これ元の英文もおかしいと思う
Cannot use in ref or out parameter 'parameter' inside an anonymous method, lambda expression, or query expression
の 'in' がキーワードと認識できないからわかりにくい訳になってる
in, ref, outを列挙するならカンマでつないで
Cannot use in, ref, or out parameter 'parameter' inside an anonymous method, lambda expression, or query expression
とするのが普通だと思う
これならGoogle翻訳でも
匿名メソッド、ラムダ式、またはクエリ式内では、in、ref、またはoutパラメーター 'parameter'を使用できません
とそれなりの訳文になる
- 696 :デフォルトの名無しさん (ワッチョイ ff01-vB/y):2020/05/16(土) 14:19:19 ID:5tLRWKNk0.net
- Cannot use ref or out parameter … だったところに
新機能でinが追加されて修正したやつがミスったんだろ
実際のエラーメッセージはカンマ入りでちゃんと修正されてる
CS1628: Cannot use ref, out, or in parameter 'x' inside an anonymous method…
- 697 :デフォルトの名無しさん (ワッチョイ 97ad-SWFu):2020/05/16(土) 14:33:46 ID:GaPEU8I00.net
- >>695
つまりはここでしくったって事か。
https://github.com/dotnet/docs/commit/b6260bc6ec50f5aac074be770802dc63d4f9faf2#diff-c8c760ed90c0eac9154358b3438bfdde
- 698 :デフォルトの名無しさん :2020/05/16(土) 15:24:12.42 ID:hzvIc6mG0.net
- >>697
そうだね、parameterが重複しちゃってるのはその前からだし、そもそもキーワードはバッククォートで囲っとくべきだけどね
- 699 :デフォルトの名無しさん :2020/05/16(土) 17:58:30.18 ID:gofaxmB+0.net
- 練習がてらWindowsフォームでカレンダーを作っています
アプリが選択されていない時でも、例えば特定のラベルに
マウスポインタをかざすだけでイベントを発生させることはできますか?
- 700 :デフォルトの名無しさん (ワッチョイ ab7b-u9dh):2020/05/16(土) 18:06:26 ID:WlfS3Ahk0.net
- >>699
MouseEnterイベント
- 701 :デフォルトの名無しさん (ワッチョイ 6b01-VOoi):2020/05/16(土) 18:26:07 ID:gofaxmB+0.net
- >>700
ありがとうございます
MouseEnterイベントの内容を間違えて捉えていました
- 702 :デフォルトの名無しさん :2020/05/16(土) 19:09:59.71 ID:Z06SXSKt0.net
- イベントは常に発生しているだろ
それをフックするかしないかだけで。
- 703 :デフォルトの名無しさん :2020/05/16(土) 20:00:39.55 ID:9bKV5hlVa.net
- ワイルドだろぉ〜?
まで読んだ
- 704 :デフォルトの名無しさん :2020/05/17(日) 09:17:29.91 ID:cGtEzJ7q0.net
- WinFormsでWndProcとかフックしてて思ったんだけど
C++でデスクトップGUI作る場合ってGetMessageループするスレッド立ててWMをswitchさせてって感じでチマチマやってんの?
- 705 :デフォルトの名無しさん :2020/05/17(日) 09:26:02.95 ID:qz8+t6v/0.net
- C++もMFCで組む場合はなんかよくわからんイベントで処理されてること考えないとあかんで
c#に移植するときは対応するイベントやメソッドがどれか当てはめるだけで移植できるかもしれんほど似てる
ぶっちゃけこの周りはwin32api時代のが一番見通し良かった
- 706 :デフォルトの名無しさん (ワッチョイ 9701-nHeX):2020/05/17(日) 09:41:58 ID:vdKycdNh0.net
- 隔靴掻痒
- 707 :デフォルトの名無しさん :2020/05/17(日) 10:20:04.65 ID:c3b5r+2ta.net
- Win32API が見透し良いのは同意
MFC は糞(ただのラッパーをクラスライブラリと称するとかアホかと)
- 708 :デフォルトの名無しさん (ワッチョイ 6b01-VOoi):2020/05/17(日) 10:38:34 ID:WidHY7hL0.net
- >>702
はい
独学だと基本がだめですね
読まないといけない本がたくさんあります
カレンダーは一旦完成したんですけど、また組み直してます
Form1にメソッドが集中するのもどうかと思い、カプセル化の勉強がてらクラスに分けたりしています
あと、デザイナでエラーが起きるのが怖いです
カレンダーの日付が表示される42個の部品をユーザーコントロールで作っているのですが
これのプロパティをいじるとデザイナでよくエラーが起きます
ソリューションのクリーンなどをしてると直るんですけど、それでよかったのかよくわかりません
ちなみにここで言ってるプロパティとは、セッターゲッターのある自分で入力するプロパティです
このプロパティと、プロパティウィンドウでのプロパティはどういう関係にあるのかもよくわからないんですけど。Designer.csをみるとただのフィールドのように見えるので。
- 709 :デフォルトの名無しさん (ワッチョイ eb7c-ahgx):2020/05/17(日) 10:42:17 ID:A0b/Dj9R0.net
- 馬鹿はいつもあさっての方向に努力するよな
- 710 :デフォルトの名無しさん :2020/05/17(日) 10:47:23.24 ID:U+QztSWEa.net
- インターフェース多すぎて使い方よく分からんのだけど、いい解説サイトない?
- 711 :デフォルトの名無しさん (ワッチョイ d978-gIXh):2020/05/17(日) 10:54:28 ID:xmDbof2g0.net
- >>710
https://docs.microsoft.com/ja-jp/dotnet/
- 712 :デフォルトの名無しさん (ワッチョイ 8902-aUbQ):2020/05/17(日) 10:57:26 ID:a6GN2IRE0.net
- >>708
そのコードを晒してみれば、優しいお兄さん方が色々指導してくれるかも知れないよ。
独学ヤバいと思うならやってみてもいいかと。
- 713 :デフォルトの名無しさん (ワッチョイ 6b01-VOoi):2020/05/17(日) 12:52:02 ID:WidHY7hL0.net
- >>712
大学卒業したての美人の女医さんに
はい、パンツ脱いでおちんちん見せなさいって言われてるようで
はずかしすぎてとても無理っす
落ち着いていろんなことを実験したり調べてみると理解できるようになるんで頑張ってみます
- 714 :デフォルトの名無しさん (ワッチョイ 17f1-8kLo):2020/05/17(日) 13:26:59 ID:oJIHh9Jk0.net
- >>713
逆に大学卒業したての美人の女医さんに
はい、パンツ脱いでおちんちん見せなさいって言われる体験をしたいのですが
どうすればいいですか?そんな例えを思いつくくらいだから方法はあるのでしょうね
- 715 :デフォルトの名無しさん (ワッチョイ 6b01-VOoi):2020/05/17(日) 14:26:14 ID:WidHY7hL0.net
- >>714
5歳ぐらいに戻れば簡単
変装でも8割方いけますわ
- 716 :デフォルトの名無しさん (ワッチョイ 17f1-8kLo):2020/05/17(日) 14:39:23 ID:oJIHh9Jk0.net
- >>715
?
- 717 :デフォルトの名無しさん (JP 0H13-2td9):2020/05/17(日) 15:21:16 ID:BOpWVUpQH.net
- 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
- 718 :デフォルトの名無しさん (ワッチョイ 1384-57Gp):2020/05/17(日) 15:59:31 ID:bUEaT9ex0.net
- >>708
使い方とか設定でなにかあるのかもしれないけど、挙動からみるとデザイナはリアル
タイムにクラスのコードを解釈しているのではなく、キャッシュされたコードを使って
描画を行っているっぽい
DataGridViewクラスはhogeColumnクラスとhogeCellクラスを作るとユーザ定義の
セルを作れて、デザイナで作ったセル用のクラスをコントロールできるようになる
けど、作成直後はコードを保存してもリビルドしてもデザイナには反映されない
一旦コードをデバッグ実行すると、次からはデザイナでコントロール可能になるけど
プロパティを増やすとデザイナーに反映されないし、削除するとプロパティがないって
デザイナのコンパイラ(?)がエラーを吐いたりする
一応デザイナ画面を表示させない状態でバイナリのビルドに成功した状態で実行
してフォームが表示されれば、次からはデザイナで操作できるので気にしないで
使ってるけど
.NetFrameworkのソース見ると何か色々、実際のコードとは関係なさそうな指示
コードがたくさん書いてあるので、デザイナで使用するにはこの辺も記述する
必要があるのかもしれないけどよくわからない
デザイナで表示されるプロパティウィンドウに表示されるのは、単純にクラスで定義
されているプロパティなので別に違いはないはずだけどなぁ
- 719 :デフォルトの名無しさん (ワッチョイ 6b01-VOoi):2020/05/17(日) 17:21:28 ID:WidHY7hL0.net
- >>718
とても参考になりました
ありがとうございます
デザイナのエラーで元に戻らなくなると怖いので
ソリューションフォルダごとバックアップのためコピーしてるんです。
でも、エラーが起きるはずのないフォルダから起動しても
エラーが一時的に起きたことがあったんで疑問に思ってました。
キャッシュが残ってたからなんですね
>一応デザイナ画面を表示させない状態でバイナリのビルドに成功した状態で実行
>してフォームが表示されれば、次からはデザイナで操作できるので気にしないで
>使ってるけど
これ意識してなかったんですけど、そう言われればその手順でやるとエラー消えてました
プロパティについては理解が浅くて、いろいろ間違えていました。
山田先生の独習を読み直して教科書通りに書き直してみたらエラーが起きないようになりました
setterにいろいろ書きすぎてました。一応動いちゃうので大して気にせずに。
あと、自分で書いたプロパティとの違いですけど、これも勘違いしてました。
例えばForm1はFormクラスを継承してるので、プロパティはFormクラスや
さらにその先のクラスで定義されてるということですね
Designer.csやForm1.csでそれらしきのが書かれていなかったので早合点してました
- 720 :デフォルトの名無しさん :2020/05/17(日) 18:05:02.43 ID:kGA4FYso0.net
- 本題とは関係ないけど
> デザイナのエラーで元に戻らなくなると怖いので
> ソリューションフォルダごとバックアップのためコピーしてるんです。
Git導入してみてはどうだろう 一人開発でも十分役に立つぞ
今どきはVSにも組み込まれてるんだし
- 721 :デフォルトの名無しさん :2020/05/17(日) 18:12:17.37 ID:T4/b/bLZa.net
- 初心者の勉強にGitなんか要らんよ
俺も初心者の頃は意識高い情報に踊らされてバージョン管理しながら勉強してたが、前のバージョンに戻すなんて一度たりともやった覚えがない
もっと言えば、初心者時代に書いたコードなんてはっきり言って何の価値もないゴミだ
後から見返したことは一度もない
- 722 :デフォルトの名無しさん (ワッチョイ d390-6tiU):2020/05/17(日) 18:27:33 ID:NeE1Esak0.net
- 後々取っておくとこんなのもあったなあ…って懐古しながら成長したことを実感できるよ
- 723 :デフォルトの名無しさん (ワッチョイ 9b4f-gIXh):2020/05/17(日) 18:29:18 ID:EbKAPsbe0.net
- いろいろ試行錯誤する初心者の方が役に立つと思うけどなぁ。
ガチャガチャ試しているうちに今まで動いていたところがなぜかうまく動かなくなったとか。
- 724 :デフォルトの名無しさん :2020/05/17(日) 18:42:33.53 ID:sPeeGmAVa.net
- ZIPで固めて丸ごと保存最高だよねw
一瞬で出来るし何の準備もいらん
- 725 :デフォルトの名無しさん (ワッチョイ 3d01-gIXh):2020/05/17(日) 19:15:02 ID:WeV7wvNO0.net
- Gitは保存の仕方だけ覚えたから上書きだけしてる
初心者だからバージョン管理とか不要
- 726 :デフォルトの名無しさん (ワッチョイ 3bad-fRvC):2020/05/17(日) 19:33:53 ID:VAj0yrtz0.net
- 初心者だろうとなんだろうとバージョン管理は基本
- 727 :デフォルトの名無しさん :2020/05/17(日) 19:56:39.41 ID:zE6yFOdt0.net
- バージョン管理システムの概念を理解するまで結構慣れが必要だから
初心者の内から触るのも悪くない
- 728 ::2020/05/17(日) 20:03:25.43 ID:US7auhKkH.net
- 私も昔は CVS のレポジトリを dropbox に置いてお気楽に、ああ便利だ、とやってましたが…
ある日突然レポジトリが死んでしまったのにショックを受けて以来、今も躊躇しているのです
- 729 :デフォルトの名無しさん:2020/05/17(日) 20:22:56 .net
- >>724
これ
- 730 :デフォルトの名無しさん (ワッチョイ 8902-aUbQ):2020/05/17(日) 20:24:25 ID:a6GN2IRE0.net
- >>723
だよな。
初心者じゃなくても、不具合を生んじゃった箇所を調べたり出来るし。
過去バージョンに戻したりはしないけど、比較はよくやるよ。実際。
- 731 :デフォルトの名無しさん :2020/05/17(日) 20:35:22.45 ID:dvSHUyYR0.net
- 比較なんてエディタでもできるし
そもそも一人なんだからローカルリポジトリでいいだろ
- 732 :デフォルトの名無しさん :2020/05/17(日) 20:47:12.43 ID:cbSXa2eM0.net
- sourcetreeいれてブランチつくってこねこねしてたらなんとなく複雑なバージョン管理している気分になれるからおすすめ
なお実戦で役に立つかどうかはしらん
- 733 :デフォルトの名無しさん :2020/05/17(日) 20:49:38.05 ID:T4/b/bLZa.net
- SourceTreeってWindows版はWPFだから嫌い
Forkに乗り換えたわ
- 734 :デフォルトの名無しさん (ワッチョイ 6b63-S0xs):2020/05/17(日) 21:11:45 ID:hv2XIFXO0.net
- >>733
べつに使う側からしたらWPFでもformsでも何でもよくない?
- 735 :デフォルトの名無しさん (ワッチョイ d978-gIXh):2020/05/17(日) 21:14:15 ID:xmDbof2g0.net
- >>733
VisualStudio使ってないの?
- 736 :デフォルトの名無しさん :2020/05/17(日) 21:50:04.36 ID:jYDn0xup0.net
- >>732
SourceTree仕事でもメッチャ使ってる
でもAtlasianのアカウント作れって言われるようになって面倒
最近は Git Extensions のUIも頑張ってるからそっちに乗り換えようかとおもってる
- 737 :デフォルトの名無しさん :2020/05/17(日) 22:13:04.12 ID:Cxm54tO20.net
- VS以外だとTortoiseGit使ってるわ
- 738 :デフォルトの名無しさん :2020/05/17(日) 22:34:53.36 ID:VAj0yrtz0.net
- Visual Studio CodeとCLIで大体の作業は事足りるしなあ
- 739 :デフォルトの名無しさん :2020/05/17(日) 23:11:20.91 ID:wfhyoR0J0.net
- >>736
アレさ
フォルダの中のファイル変えるじゃん
現在アクティブなブランチはフォルダ見ただけじゃわからないし
すべての操作が気軽にしてはいけないくせに右クリックのメニューとか
ドラッグ・アンド・ドロップでやらせようとするのがゴミ
操作前に操作後の結果がビジュアル的に見えないといけないツールのくせに
何もしてないし
いらなくね?
普通にtortoiseGitでできる範囲の操作しかしないほうがいい
- 740 :デフォルトの名無しさん :2020/05/17(日) 23:29:14.84 ID:jYDn0xup0.net
- >>739
なんの操作のこと言ってるかわかんないけど何でも楽にできていいけどなあ
間違えたら元に戻せばいいだけだし
そんなに間違えないし
- 741 :デフォルトの名無しさん :2020/05/17(日) 23:43:05.81 ID:wfhyoR0J0.net
- >>740
いいや、この手のツールはデータのミスには強いけど
操作のミスには甘くないよ
- 742 :デフォルトの名無しさん (ワッチョイ 4da7-071a):2020/05/17(日) 23:53:55 ID:wfhyoR0J0.net
- ツールの故障もダメ
コミット失敗してもロールバックしてくれないぞ
- 743 :デフォルトの名無しさん :2020/05/18(月) 00:04:19.65 ID:g/ITMYKi0.net
- コミット失敗の意味がわからん
間違いコミットなんか別に問題ないし戻りたければ戻れるだろ
pushしてからミスに気付いたのは面倒だけど
それはツールかどうか関係ないしな
- 744 :デフォルトの名無しさん :2020/05/18(月) 00:05:50.73 ID:flcUkeyx0.net
- >>742
コミットミスがどの操作でどの範囲のミスか知らんけど、sourcetreeなら自分でロールバックできるじゃん
- 745 :デフォルトの名無しさん :2020/05/18(月) 00:14:15.65 ID:ZhbDs7dG0.net
- その昔VSSという、格納したファイルが
ロストするというとんでもないバージョン管理システムとか
文書が消滅する文書管理システムとかあってなw
- 746 :デフォルトの名無しさん :2020/05/18(月) 01:35:24.95 ID:gGxx/ysn0.net
- >>745
SQLServerのデータだから何とでもなるだろ
サーバのバックアップも取っていなかったアホの類い?
- 747 :デフォルトの名無しさん (ワッチョイ 4da7-071a):2020/05/18(月) 02:00:15 ID:Js/sWW350.net
- >>744
つい最近やったばっかりだけど
何やってもエラー出るようになって動かなくなったよ
もっともGitが悪いのかSourcetreeが悪いのか切り分けしてないけど
- 748 :デフォルトの名無しさん (ワッチョイ 4da7-071a):2020/05/18(月) 02:01:08 ID:Js/sWW350.net
- >>744
通信異常だっていってるじゃん
- 749 :デフォルトの名無しさん :2020/05/18(月) 02:16:56.43 ID:dAzYDVZg0.net
- 未経験から半年でフリーエンジニアになれる人の特徴
https://www.youtube.com/watch?v=YCxu0jn52Qw
フリーランスか会社員かどっちが簡単かについての最終回答
https://www.youtube.com/watch?v=JA4JNSmIdxI
【エンジニア】正社員/派遣社員/フリーランスのメリット・デメリットについて
https://www.youtube.com/watch?v=fTG-eMpwhCg
月収1000万円オンラインサロンオーナーの日常【飲み過ぎ】
https://www.youtube.com/watch?v=lPfWZLatYus&t=107s
借金400万円から人生逆転するまでの軌跡
https://www.youtube.com/watch?v=fXdHlFFUjGY
- 750 :デフォルトの名無しさん :2020/05/18(月) 02:54:46.58 ID:QOM8mByz0.net
- >>749
スレチ グロ
- 751 :デフォルトの名無しさん (ワッチョイ 7701-tC+g):2020/05/18(月) 07:21:22 ID:ZhbDs7dG0.net
- >>746
馬鹿は知ったかぶりすんな
- 752 :デフォルトの名無しさん (アウアウエー Sa93-jstM):2020/05/18(月) 09:32:08 ID:vuzvZUyca.net
- ループ中にList<string>へAddして追加していった文字列があります
Listの中身は仮にABCD, ABCD, EFGH, IJKL, IJKL, IJKLとします
これを集計してMessageBox.Showにて下記のように出力したいのですがどのような方法がありますか?
---------------
ABCD 2件
EFGH 1件
IJKL 3件
---------------
集計部分の方法について教えていただきたいです
二重ループにてひとつずつカウントするのは思いつくのですがもっと無駄の無い方法があるのではないかと質問させていただきました
ループの回数、Addされる文字列は決まっていないためListに格納してみました
ループ1回の中で条件に合致するとListへAddします(1回のループで追加なし or 1回だけAddの必ずどちらかです)
質問の前提条件が足りませんでしたら指摘お願いします
よろしくお願いします
- 753 :デフォルトの名無しさん (ワッチョイ 49ea-gIXh):2020/05/18(月) 09:37:16 ID:pauZM8r90.net
- Dictionary<string, int>
でよくね?
- 754 :デフォルトの名無しさん :2020/05/18(月) 09:47:52.23 ID:OpjsybgA0.net
- Addするときについでに数えるならDictionary<stirng, int>
完成したList<string>を数えるならGroupBy()をそれぞれCount()
- 755 :デフォルトの名無しさん (アウアウウー Sa1d-/iGY):2020/05/18(月) 10:12:42 ID:W1RwdSEUa.net
- そういうのは集計対象データがDBに入ってるケースが殆どだから、最初からSQLでやっちゃうのが一番スマート
- 756 :デフォルトの名無しさん :2020/05/18(月) 10:54:25.11 ID:vuzvZUyca.net
- >>753-755
ありがとうございます
>>753,754
Dictionaryを使う場合、stringに文字列、intに件数
追加する際にContainsKeyで重複確認
存在しなければ[ABCD, 1]で追加、存在すればintを+1
こんな感じでしょうか?
>>754
ListでGroupBy()、Count()を使用したい場合、List追加時に
{ no = 1, name = "A", grade = 3 }のような形式で追加する必要があると思っているのですが
単純なList.Add(str)でもGroupBy()等が使えるのでしょうか?
ググった中では上記の例しか見つけられずここに質問に参りました
>>755
SQLなら良かったんですが、テキストファイルをDB取込用に変換する時点のお話なんです…
- 757 :デフォルトの名無しさん :2020/05/18(月) 11:32:45.53 ID:JFOczdfW0.net
- >>756
こんな感じでいけるんでね?
var result = list.GroupBy(x => x)
.Select(x => new { Name = x.Key, Count = x.Count() });
- 758 :デフォルトの名無しさん :2020/05/18(月) 12:26:33.79 ID:vuzvZUyca.net
- >>757
いけました!!!
実現したいことができそうです!
ありがとうございました!
- 759 :デフォルトの名無しさん (ワッチョイ cf61-gjhq):2020/05/18(月) 12:47:51 ID:p81iujaQ0.net
- >>757
Selectいる?
- 760 :デフォルトの名無しさん (ワッチョイ 7f2c-JcAG):2020/05/18(月) 13:58:26 ID:MslK9QoT0.net
- Ruby なら、
ary = %w(あ 12 x 12 あ 12)
p ary.group_by( &:itself ).transform_values( &:size )
出力
{"あ"=>2, "12"=>3, "x"=>1}
- 761 :デフォルトの名無しさん (ワッチョイ ab33-2pxY):2020/05/18(月) 14:32:21 ID:JFOczdfW0.net
- >>759
無しでも書けるか
var groups = list.GroupBy(x => x);
foreach (var g in groups)
{
Console.WriteLine("{0} {1}件", g.Key, g.Count());
}
- 762 :760 (ワッチョイ 7f2c-JcAG):2020/05/18(月) 15:54:33 ID:MslK9QoT0.net
- Ruby なら、x => x
などのラムダ式も、
&:itself などのメソッド名を渡すだけで良い
- 763 :デフォルトの名無しさん :2020/05/18(月) 22:54:28.02 ID:/IMIPkUF0.net
- >>762
Sapphireならどう出る?
- 764 :デフォルトの名無しさん (ワッチョイ a72c-MWp5):2020/05/18(月) 23:51:04 ID:TSImRkOU0.net
- >>761
ごめん素朴な疑問なんだけど、そのCount()の使い方だと、イテレータの評価が毎回全周するわけにはならんのん?
- 765 :デフォルトの名無しさん (ワッチョイ 2b2c-2D9n):2020/05/19(火) 00:00:16 ID:QbrDO9YB0.net
- ならないよ
GroupByでキャッシュされる
- 766 :デフォルトの名無しさん :2020/05/19(火) 00:32:37.22 ID:1Pn0Xhkl0.net
- キャッシュ?
- 767 :デフォルトの名無しさん :2020/05/19(火) 00:46:42.98 ID:7LUV0pB00.net
- 寝ぼけてたらすまない。
>>764 の「毎回全周」ってどういう状態?
- 768 :デフォルトの名無しさん :2020/05/19(火) 00:51:43.48 ID:QbrDO9YB0.net
- とりあえず自分はCount()のたびに
list.GetEnuemrable().GetEnumerator()が呼び出されることと受け取った
- 769 :デフォルトの名無しさん :2020/05/19(火) 00:53:42.34 ID:QbrDO9YB0.net
- あ違う
Count()のたびにlist.GetEnumerator()からの列挙が、だな
- 770 :デフォルトの名無しさん :2020/05/19(火) 01:21:07.22 ID:1Pn0Xhkl0.net
- var groups = list.GroupBy(x => x); のgroupsはIEnumerable<IGrouping<string, string>>
foreach (var g in groups) のgはIGrouping<string, string>
IGrouping<T>に対するCount()はEnumerable.Count()が呼ばれる
IGrouping<T>にICollection<T>やICollectionは実装されてないから
Enumerable.Count()が呼ばれるとGetEnumerator()使って数えるんじゃないかな
(各グループごとにグループ内の要素数分だけMoveNext()が呼ばれるイメージ)
- 771 :デフォルトの名無しさん :2020/05/19(火) 01:36:28.09 ID:1Pn0Xhkl0.net
- 試してみたらg as ICollection<string>で変換できたので
Count()はGetEnumeratorされてなさそう
- 772 :デフォルトの名無しさん :2020/05/19(火) 01:50:25.74 ID:PNm9d/ci0.net
- await Task.Factory.StartNew(
() => {
for (int i = 0; i < imageList.Count; i++)
{
Clipboard.SetImage(imageList[i]);
}
},
CancellationToken.None,
TaskCreationOptions.None,
TaskScheduler.FromCurrentSynchronizationContext()
);
こんな感じで画像のリストを1つ1つクリップボードにコピーさせていくのですが
タスクでSTAスレッドで処理をするとUIのメインスレッドがフリーズするのですがフリーズ回避はどうしたらいいですか?
- 773 :デフォルトの名無しさん (テテンテンテン MM17-/iGY):2020/05/19(火) 02:02:02 ID:Gmm+b2VzM.net
- 単に Clipboard.SetImage(imageList.Last()) にすればいい
等価だ
- 774 :デフォルトの名無しさん (ワッチョイ 7f2c-JcAG):2020/05/19(火) 08:52:42 ID:NuzKkPrj0.net
- クリップボードみたいなユーザーよりの機能は、
バックグラウンドスレッドから、アクセスできるかな?
ひょっとしたら、UI(メイン)スレッドからしか、アクセスできないかも?
- 775 :デフォルトの名無しさん :2020/05/19(火) 09:39:08.13 ID:uON0wt840.net
- >>770
764だけどなるほど、ありがとう
- 776 :デフォルトの名無しさん (ワッチョイ 5b84-57Gp):2020/05/19(火) 17:49:11 ID:+0P+K8Fq0.net
- >>772
STAスレッド(Formのスレッド?)で処理していたらUIの更新が行えないので
正しい動作かな
ClipboardクラスはSTAでしか動かないってなっているので、asyncメソッドでtaskを
実行してdelegate経由のinvokeで呼び出すんじゃないかな
- 777 :デフォルトの名無しさん (ワッチョイ 4d1d-ucyj):2020/05/19(火) 18:20:34 ID:8HY/3oGP0.net
- SIer業界がブラックな理由を解説する。エンジニアは自社開発をしているWeb業界がオススメ!
https://www.youtube.com/watch?v=iy4nnAI9og4
エンジニアの仕事が稼げる理由とは?プログラミングスキルと
仕事の需要は比例しないので、実は技術力が低くても稼ぐことができる!
https://www.youtube.com/watch?v=82Bs-NH8jAM
通勤時間が長い人ほど無能説。家賃節約とか言っている暇があったら、
会社の近くに引っ越して浮いた時間に副業したほうがお金も貯まるし強くなれる。
https://www.youtube.com/watch?v=mt6K1RJnk6I
プログラミングに英語は必要か?に対する明確な答え
https://www.youtube.com/watch?v=WWULJbVECKU
私がヤフーを辞めた理由
https://www.youtube.com/watch?v=-G-7Hc3rJw8
【業界研究】IT業界でひと括りにするのは危険。SIer、Web制作、
アプリ開発で仕事内容が全く違います。【就活・転職】
https://www.youtube.com/watch?v=_IJQ2iBkf4w
- 778 :デフォルトの名無しさん (ワッチョイ ebfd-4TjA):2020/05/19(火) 18:32:12 ID:mepgGg800.net
- vb.netとc#の大きな違いってなんでしょうか
仕事で後者を触らないといけないんですが
- 779 :デフォルトの名無しさん (アウアウエー Sa93-ahgx):2020/05/19(火) 18:34:15 ID:h69Ba80Ra.net
- vb.net うれしくない
C# どちらでもない
- 780 :デフォルトの名無しさん :2020/05/19(火) 18:49:46.90 ID:DkycvRhf0.net
- >>777
ハゲとるやないか
- 781 :デフォルトの名無しさん (ワッチョイ 3d01-gIXh):2020/05/19(火) 19:07:11 ID:klHbQUiE0.net
- >>778
開発終了と開発続行
- 782 :デフォルトの名無しさん (オッペケ Sra5-4TjA):2020/05/19(火) 19:56:29 ID:FEuqCu/Yr.net
- そんなに大きく違いますか?
文法書見てる感じではそこまで大きな差はないなかな、と思ったりしてますが
- 783 :デフォルトの名無しさん (ワッチョイ 6b63-S0xs):2020/05/19(火) 20:07:13 ID:T11FGKSX0.net
- >>782
どっちも.NETベースだから基本は大して変わらんけどC#のほうが長続きしてるのでVB.NETにない新しい言語機能がいろいろある
- 784 :デフォルトの名無しさん (ワッチョイ 3bad-fRvC):2020/05/19(火) 20:40:43 ID:a0TVrn2w0.net
- >>782
リソースが段違い
- 785 :デフォルトの名無しさん (アウアウウー Sa31-L7FI):2020/05/19(火) 20:48:48 ID:Hcak2SNoa.net
- >>782
あんまり意味のある質問に思えないんだけどw
- 786 :デフォルトの名無しさん (アウアウウー Saaf-Wcp/):2020/05/19(火) 20:49:42 ID:jcXcpHtca.net
- >>782
言語仕様はほぼ一緒なんだけど使い手のレベルとか文化とかに雲泥の差が
控えめに言ってVBしかできないような人は20世紀から取り残されたゴミみたいな開発者が大半
BASICの歴史的な経緯からくる負の遺産、いままでに蓄積されたクソコードもてんこ盛り
VBに関わるとダメプログラマに転落するぞ
といいつつC#でも下手するとVS2005〜2008位で時間が止まったままの案件も結構あるけどな
そういう現場にどっぷり漬かるとVBでもC#でもダメエンジニアへの道まっしぐらだ
- 787 :デフォルトの名無しさん (ブーイモ MM81-DBEz):2020/05/19(火) 20:55:05 ID:1ZWHWWZ0M.net
- っていうか言語で出来ることが変わるとか制限あるのがおかしい
日本語の「ツンデレ」を訳せる言語が無いとかそういうレベルと違う
- 788 :デフォルトの名無しさん (ワッチョイ 3fac-5iCk):2020/05/19(火) 20:57:59 ID:HSamcFUd0.net
- VBはちょっと。。
言語もだけど、書く人の頭が古いからコードまで至るところで古さを感じる
多重for、ifとかそんなレベルで
VB現役でやってる人でもすごい人はいるんだろうけど、稀有やろなあ
- 789 :デフォルトの名無しさん :2020/05/19(火) 21:07:44.17 ID:+YYtOpaV0.net
- VBの言語仕様はラムダ式とかクロージャと相性が悪い
- 790 :デフォルトの名無しさん (ワッチョイ d978-gIXh):2020/05/19(火) 21:11:51 ID:nVxChFQF0.net
- C# と VB.NET、同じコード書いても IL レベルで見るとVB.NET側にゴミが付くんだよな
- 791 :デフォルトの名無しさん (ワッチョイ 55da-N57e):2020/05/19(火) 21:23:56 ID:u8EJQdwC0.net
- C#とVB.NETどっちも選べる状態でVB.NET選んでる人やプロジェクトってどれくらいあるんかな?
- 792 :デフォルトの名無しさん (ワッチョイ d390-6tiU):2020/05/19(火) 22:18:57 ID:KmzCw2hp0.net
- 数年前に作られたVB.NETのWebシステム知ってる
オフショアで作らせたら動く粗大ゴミが誕生したと聞いた
詳しくは知らんが
- 793 :デフォルトの名無しさん (アウアウウー Sac7-RnIb):2020/05/20(水) 06:51:50 ID:AQWueC8Ga.net
- 自分が作ってるツールはexcel操作する場合
いつもvb.netで書いてしまうわ
- 794 :デフォルトの名無しさん :2020/05/20(水) 07:03:39.27 ID:lHd0Mfby0.net
- VBはC#より稀に先進的な記述方法がある
行末に;要らないとか
つかC#もそうして欲しい
簡単だろ
- 795 :デフォルトの名無しさん :2020/05/20(水) 07:05:09.78 ID:QEwx4hM4a.net
- C#で書いてると、たまにVB使うとエンターキーの違いでイラっとくるわ
- 796 :デフォルトの名無しさん :2020/05/20(水) 07:11:31.80 ID:lHd0Mfby0.net
- VBに限っては改修業務が良い
新規でVBとか考えたくない
- 797 :デフォルトの名無しさん :2020/05/20(水) 10:16:35.82 ID:qjNDk5Cx0.net
- エンターキーの違いとは?
- 798 :デフォルトの名無しさん :2020/05/20(水) 12:59:08.46 ID:nNq7q5wW0.net
- public Class MyCustomForm : Form
という自作の拡張Formクラスを作り、コンストラクタで色やいくつかのコントロールを配置したものをメインのForm1で継承させ、コンパイルも上手くいき実際の動作も希望通りではあるのですが、
上記のMyCustomFormのコンストラクタ内で追加したコントロールがデザイナで編集することができません。
まるで背景画像かのように選択すら出来ないものや、選択こそ出来てもAutoSizeやLocationなどの項目が灰色掛かって編集不可能になっていたりします。
InitializeComponent()以外で追加したコントロールをデザイナ上で操作することは不可能なのでしょうか?
- 799 :デフォルトの名無しさん :2020/05/20(水) 13:29:58.53 ID:ABO4MomS0.net
- VBで作ったシステムをVB.NETに移植しようとしたが
あまりも超絶スパゲッティだったのでほぐしたら
最終的にコード量が1/4になった事がある
- 800 :デフォルトの名無しさん :2020/05/20(水) 13:51:44.57 ID:AVjmh1IR0.net
- VB6で長年熟成された秘伝のソースをぽっと出のVB.netごときで再現できるわけがない
- 801 :デフォルトの名無しさん (オッペケ Srbb-jY78):2020/05/20(水) 14:39:55 ID:JM16LRl0r.net
- https://pc.watch.impress.co.jp/docs/news/1253193.html
Microsoft、Win32とUWPの2つのAPIを再統合する「Project Reunion」
- 802 :デフォルトの名無しさん (アウアウエー Sa52-NLVI):2020/05/20(水) 14:41:38 ID:mXqWoGfUa.net
- VBのツールいまだに動くからリプレイスする意味ない
放置が安全
- 803 :デフォルトの名無しさん (ワッチョイ 8b01-oW4g):2020/05/20(水) 16:24:15 ID:wnqJe1lz0.net
- プロジェクト・リュニオン!
ゴー!リュニオン!
- 804 :デフォルトの名無しさん (ワッチョイ 6301-UYz0):2020/05/20(水) 16:27:54 ID:kLEW4Vt90.net
- >>801
眩暈がして来た
- 805 :デフォルトの名無しさん :2020/05/20(水) 18:05:51.93 ID:e2MEnn77a.net
- 要するに5年ぐらい前に言ってたはずの「Win32を全廃してUWPで一本化する」計画は
諦めたってこと?
まああの話も一瞬出ただけでその後まったく聞かなくなってたけど
>>798
アクセスレベルがprivateになってるとかではなくて?
っていうか、もしコントロールをユーザーコードで追加している場合だけ起こる(デザイナで追加した場合は起こらない)
問題だと分かっているなら変なこだわりを捨てればよいだけなのでは?
まあバグでプロパティがいじれないコントロールも一部あるらしい
https://teratail.com/questions/236012
- 806 :デフォルトの名無しさん (オッペケ Srbb-yNr9):2020/05/20(水) 18:40:47 ID:t37lmoTKr.net
- デザイナはわりと属性見てるので、その辺ちゃんとやっとかないとうまくいかないことがある
- 807 :デフォルトの名無しさん (ワッチョイ 9763-xLuj):2020/05/20(水) 19:08:47 ID:2OJQAkVy0.net
- リユニオンとか真っ黒になりそう
- 808 :デフォルトの名無しさん :2020/05/20(水) 20:43:28.09 ID:wnqJe1lz0.net
- トレイン変形!ゴー!リュニオン!
- 809 :デフォルトの名無しさん (ワッチョイ 9a01-hY51):2020/05/21(Thu) 04:25:59 ID:ShhpHDma0.net
- winフォームアプリなのですが、Form1上のtextBox1に他クラスからアクセスしたい時って
Form1.Designer.csの下の方にあるフィールドをpublicに変えるのはよくない例ですか?
Form1のコンストラクタで自分自身を当該他クラスに引き渡す処理は済んでいます
Form1で、textBox1.TEXTをプロパティにして
他クラスからアクセスする方法も考えたんですけど、
じゃ、テキストボックスじゃなくてリストビューとかだとどうするんだとか考えたら
めんどくさいからもうpublicでいいんじゃないかとか思っちゃうんですけど
ベテランの皆さんはどうしてるんでしょうか
- 810 :デフォルトの名無しさん :2020/05/21(木) 04:48:51.98 ID:KUTx9pVe0.net
- だめ
- 811 :デフォルトの名無しさん :2020/05/21(木) 04:53:08.19 ID:ShhpHDma0.net
- >>810
はい、頑張って考えてみます
- 812 :デフォルトの名無しさん :2020/05/21(木) 07:23:16.29 ID:iIzHpd9H0.net
- >>809
俺はpublicにしちゃってる
ものすげー数があるときにいちいち仕組み作ってたらすごく汚くなっちゃったから
余計なことせずにpublicにしちゃったほうがよかった
- 813 :デフォルトの名無しさん (ワッチョイ 8b01-crVl):2020/05/21(Thu) 07:32:49 ID:MQs/4XZV0.net
- ボタン継承して新しいの作れば
- 814 :デフォルトの名無しさん (ワッチョイ 8b01-crVl):2020/05/21(Thu) 07:33:55 ID:MQs/4XZV0.net
- あっtextboxか
- 815 :デフォルトの名無しさん (アウアウウー Sac7-anYt):2020/05/21(Thu) 08:59:55 ID:9RboWam4a.net
- internal でよくね?
- 816 :デフォルトの名無しさん :2020/05/21(木) 11:45:51.28 ID:LNx85Gx+a.net
- >>811
頑張って考えるまでもない。
XがFormを参照するんじゃなくて、FormがXを参照するように変えるだけ。
なぜUIの更新なんていう猿仕事を他のクラスにやらせようとするの?
それはUI自身の仕事だよ。
- 817 :デフォルトの名無しさん (ワッチョイ 9a01-hY51):2020/05/21(Thu) 14:57:27 ID:ShhpHDma0.net
- >>812
誘惑にかられますわ
>>813-815
カスタムコントロールとかですか?
ググっていろいろ調べたんですけど面白そうですねこれ
今回の用途にどう使うのかについてはまだ理解できてないですけど
継承ってこういうことに使うんですね
>>816
つまり、他クラスからForm1のtextBox1に書き込む仕様自体がおかしいってことですか
Form1から他クラスに仕事させて、結果をForm1で受けとってForm1からtextBox1に書き込むべきという理解でよいですか
確かにそうですね
他クラスから書き込むとForm1のコードがスッキリするので気に入ってたんですけどよくないってことですね
他クラスの汎用性を奪っているとも言えますね
- 818 :デフォルトの名無しさん (ワッチョイ 9a01-hY51):2020/05/21(Thu) 15:28:29 ID:ShhpHDma0.net
- >>813-815
なんとなく分かりました
public partial class CustomTextBox1 : TextBox
こうやって定義してから、このクラスに処理のためのメソッドをおくとともに
自分自身のTextプロパティに書き込むようにしておく
で、このメソッドをForm1から呼んで処理させればボックスに書き込むことができるっていうことですね
あー勉強になりました
- 819 :デフォルトの名無しさん (ワッチョイ 9a01-hY51):2020/05/21(Thu) 15:32:59 ID:ShhpHDma0.net
- >>815さんは違う提案でした
アクセス修飾子の話ですね
publicにする必要ないだろうということですね
なるほどです
- 820 :デフォルトの名無しさん :2020/05/21(木) 17:41:35.31 ID:66n7MLhy0.net
- >>809
やり方は人それぞれなので何が良いとかないと思うけど、デザイナで操作できる
ところはデザイナで操作したほうが良いと思うよ
Designer.csをいじっても結果は同じなんだけど、おかしなコードを書くとデザイナの
挙動がおかしくなったりしてイランことに時間がかかったりするから
- 821 :デフォルトの名無しさん (スッップ Sdba-6rFm):2020/05/21(Thu) 17:47:51 ID:LaJH1wCvd.net
- 見掛けは同じように見えても、改行コードのせいでエラー吐いてたプロジェクトをなんとかしてくれと依頼されたことがある
- 822 :デフォルトの名無しさん :2020/05/21(木) 18:45:11.84 ID:/Pr2yAaR0.net
- >>809
ってDesigner.csを直接編集することに疑念をもっているのか
コントロールをPublicにすることに疑念をもっているのかどっちなんだろ?
- 823 :デフォルトの名無しさん (ワッチョイ 2702-crVl):2020/05/21(Thu) 18:58:27 ID:MVvwgJKT0.net
- 空っぽのイベントハンドラを一発で消去する消去する方法は無いのでしょうか?
- 824 :デフォルトの名無しさん :2020/05/21(木) 19:17:33.27 ID:n40K1Wl40.net
- 日本語でOK
- 825 :デフォルトの名無しさん (ワッチョイ 9a01-hY51):2020/05/21(Thu) 19:27:16 ID:ShhpHDma0.net
- >>820
>>822
コントロールのアクセス修飾子をデザイナから変更できることをさっき知りました
そうすべきでした
元々の質問内容は、直接Designer.csを編集してもよいかどうかではなく、
publicにすること自体いいのか悪いのか、でした。
- 826 :デフォルトの名無しさん (アウアウウー Sac7-vdj3):2020/05/21(Thu) 22:44:16 ID:y7fmuH5Aa.net
- TextBox自体をpublicにするのはやっぱり微妙かなあ
自分だったらForm1クラスにpublic(or internal)なメソッドを作って、
メソッド名をTextBoxにアクセスする目的を明確に表す名前にする
たとえば、
void set合計金額Text(int price, Color textColor) { }
string get現在のその他欄入力値()
とか言った感じで
- 827 :デフォルトの名無しさん (アウアウウー Sac7-vdj3):2020/05/21(Thu) 22:49:45 ID:y7fmuH5Aa.net
- あ、小文字始まりでJavaのsetter/getterみたいにしちゃったけどC#なら当然大文字始まり
受け取りたい項目が複数、例えポップアップ表示ダイアログの各項目の入力値を取り出すなら、
入力値を詰め込むInputValuesクラスとかを定義したうえで、
InputValues GetInputValues() { }
みたいなメソッドを作って入力値をオブジェクトで扱いやすくして返すようにする
- 828 :デフォルトの名無しさん :2020/05/21(木) 22:58:08.80 ID:n40K1Wl40.net
- インデクサー作った方がスマートかな?
public var this[int i]
- 829 :デフォルトの名無しさん :2020/05/21(木) 23:13:48.54 ID:iIzHpd9H0.net
- >>826
やめろやめろ
そんなバカなことなれて
コントロールが300個とかあるときどうするんだ
〜するべきとかそもそも元の造りがそんなふうになってないことのが多いのに
無駄なラッピングなんてするべきじゃない
想定するならそれが1000個あるときそれをやってられるかどうかを想定しろ
そもそも少数ならアクセス方法なんてどうだっていいだろ?
想定してるのは大量にある時なんだよね?
- 830 :デフォルトの名無しさん (ワッチョイ ba52-NhWw):2020/05/21(Thu) 23:54:34 ID:VEFS25bE0.net
- >>829
何で勝手に膨大な数のコントロールがある前提なんだ?
質問者はそんなこと全く言ってないし、読んだ限りでは初心者が小規模なプログラムを作ってる可能性の方が高そうだ。
そういう相手に実務上の仕方なくやる汚いやり方を教えるより、場合によっては理想論になるかもしれないが基本的に良いとされる考え方をまず教えた方がいいだろう。
- 831 :デフォルトの名無しさん :2020/05/22(金) 00:00:35.63 ID:2K6mKaTxa.net
- ???
おおもとの>>809では対象はtextBox1の一つだけみたいだけど
でこれがTextBoxからListViewに変わったときとかの話はあるけど
対象項目が大量なんて前提はどこから湧いてきたんだっけ?
というか1画面にコントロールが300個とか1000個とか配置されてて、
全部publicフィールドになってて、法則性もなくあらゆるコントロールに無尽蔵にアクセスする
なんて、その時点でソースから腐臭が漂ってるよ
そこまで酷い状態になってるなら諦めて全部publicにするしかないでしょう
後日メンテナンスしなきゃならないときの影響調査で死ぬだろうけど
- 832 :デフォルトの名無しさん :2020/05/22(金) 01:09:32.35 ID:xIO0+KZFa.net
- >>809
Viewのインターフェースを決めてFormで実装
他のクラスにはViewのインターフェースを渡す
他のクラスはFormの詳細には興味がない
- 833 :デフォルトの名無しさん :2020/05/22(金) 01:10:19.16 ID:mKnPmupma.net
- >>826のラッピングが無意味で有害無益なのは>>829の言う通りで、
問題点をはっきりさせるために大量のコントロールがあるケースを想定するのも間違ってない。
だからと言って>>812にあるようにコントロールをpublicにするのもダメ
OOP的な考え方もカプセル化の意味も分かってない人がこうも大量にいるのは困っちゃうねw
- 834 :デフォルトの名無しさん :2020/05/22(金) 01:25:23.44 ID:HA9eXiUk0.net
- >>833
なんで?
理由を説明できる?
- 835 :デフォルトの名無しさん (ワッチョイ 97de-2bic):2020/05/22(金) 01:29:28 ID:tRHrER1d0.net
- >>830
良くないじゃん
だってお前のやり方は数が増えたら手間ばっかり増えて何のメリットもないし
数が少なければ見通しが効くからラッピングなんかいらないわけで
この世に必要ないことしてんだよ
- 836 :デフォルトの名無しさん :2020/05/22(金) 01:35:16.74 ID:mKnPmupma.net
- >>834
何の理由?
つーかこのレベルの話が分からん人は回答する側に回ったらダメだろうさすがにw
- 837 :デフォルトの名無しさん :2020/05/22(金) 01:38:59.95 ID:bg8HuHxQ0.net
- >>836
publicにするのの何が駄目なん?
- 838 :デフォルトの名無しさん (アウアウウー Sac7-lIs9):2020/05/22(金) 01:47:55 ID:mKnPmupma.net
- >>837
だから、それって「どうしてカプセル化なんて必要なの?」って聞いてるのと同じだよw
カプセル化が重要なのは人間の脳が複雑性に対して脆弱だから。
だから必要な物だけ見せてそうでないものは見せないことによって複雑性を減らす必要がある。
例外はあるが、基本的にはUIはメンバーを外部に公開する必要がない。
表示を更新するのも、ユーザー入力をモデルに伝達するのも全部それはUIの仕事。
それを他人にやらせようとする発想が根本的に間違っている
- 839 :デフォルトの名無しさん (ワッチョイ dbde-2bic):2020/05/22(金) 01:54:29 ID:sv4o2LUU0.net
- >>838
複雑になんねーよ
text一個だって
数が増えたらお前の仕組みは邪魔で邪魔でいらねーんだよ
だから、この世に必要ないことしてんだよ
って言ってんだよw
- 840 :デフォルトの名無しさん :2020/05/22(金) 08:35:08.41 ID:JafM55Gga.net
- >>838
カプセル化を考えるからこそ、publicにするかどうかを悩むんじゃね?
カプセル化が頭になければ、悩まないで全部publicにしちゃうだろ
- 841 :デフォルトの名無しさん :2020/05/22(金) 09:03:50.95 ID:7ltZImPja.net
- UIスレッド以外のスレッドから操作されると危険だよね、単純にコントロールを公開すると。
- 842 :デフォルトの名無しさん :2020/05/22(金) 09:10:28.54 ID:VBq+8Qqi0.net
- そう。後悔することになる。
- 843 :デフォルトの名無しさん :2020/05/22(金) 09:49:54.76 ID:+j//r/2da.net
- 全部private readonlyにしろ
- 844 :デフォルトの名無しさん (ワッチョイ 3761-crVl):2020/05/22(金) 10:09:40 ID:ImtqKYD30.net
- コントロールに直接アクセスを許すんじゃなくて根っこにあるデータへのアクセスを許すようにしとけばいいんじゃね?
コントロールとデータはBindingしてんだからそれでいいだろ
- 845 :デフォルトの名無しさん (ワッチョイ 1b8c-crVl):2020/05/22(金) 10:15:33 ID:NtcwyNbz0.net
- WinFormsだからバインディングはしてないとおもう
- 846 :デフォルトの名無しさん (ワッチョイ 0301-f9J/):2020/05/22(金) 10:20:34 ID:+ec+XM8b0.net
- >>833
現実的に問題解決の方法が知りたい
- 847 :デフォルトの名無しさん :2020/05/22(金) 10:32:58.69 ID:I4qPJ3i7a.net
- >>841
それはフォームにメンバを追加してラップしたところで解決にならん
フォーム自身がコントロールとして元々持っている大量のメンバはどうするんだ?
もしスレッドセーフにしたいのならフォーム自体も公開してはいけない
- 848 :デフォルトの名無しさん (アウアウウー Sac7-lIs9):2020/05/22(金) 12:22:25 ID:/6UQkCjLa.net
- >>846
そんな大げさな話?
コントロールへのアクセスはFormの仕事だから他人にやらせようとせずにForm自身にやらせろと言っている。
これのどこがそんな難しい話?
ファミレスで客が厨房に乗り込んで注文出さないのと同じことだよ
注文を受けるのはウェイトレスの仕事
パスタの担当が厨房の佐藤さんであることを客が知ってないとナポリタンの注文を
出せなようなファミレスにあんた行きたいか?w
- 849 :デフォルトの名無しさん (アウアウウー Sac7-VIJV):2020/05/22(金) 12:30:46 ID:JafM55Gga.net
- >>848
ウェイトレスがいるレストランが正しいのか、セルフサービスの定食屋が正しいのかの議論に見える
つまり、どちらも正しくて、ケースバイケースで選ぶのが正しい
- 850 :デフォルトの名無しさん :2020/05/22(金) 13:06:32.78 ID:Yx9iiiQWM.net
- ぶっちゃけアーキテクチャパターンと規模次第
MVVM、MVU、MVCの場合はVの機能をV以外に公開することは滅多にない
MVPでは逆にVの基本的な機能をインターフェースで抽象化して積極的にPに公開してコントロールを委ねる
Formの主力アーキテクチャはどうなっているかというとMVPのVPが結合した怠惰なアーキテクチャになってる場合が非常に多い
丁寧に作るならPに書くべきコードが手抜きされてVのFormイベントに書かれてしまっている状態
VPが結合してるからprivateなコントロールを抽象化しなくてもアクセスすることはできる
しかしそれでは規模が大きくなるほどメンテナンスしにくくなる
VPが結合していても基本的な機能を抽象化しておくと後々のメンテナンスが楽になる
このような自クラス内部に向けて抽象化された安全なインターフェースを提供する開発手法を自己カプセル化と言う
- 851 :デフォルトの名無しさん :2020/05/22(金) 13:17:57.12 ID:F9tTEKoS0.net
- 規模が小さい練習用のアプリなら>>826 の言ってるように組むと思うけどな。なにが問題なんだ
- 852 :デフォルトの名無しさん :2020/05/22(金) 13:22:07.31 ID:jD2+szsjM.net
- >>849
そういう問題じゃない
注文相手がウェイトレスだろうと厨房にいる店主のオッサンだろうと、客がすることは「注文を店の人に伝える」だ
その注文を受けて店がどうするかという実装の詳細は知ったことではない
ケースバイケースで判断するべきは、そのフォーム同士のやり取りが客と店の間で行われるのか、それとも店の中で行われるのか、という点
後者なら例えばウェイトレスが厨房の設備のレイアウト等を知っていることを前提としてコックへ依頼をすることは店の規模次第では許されるし、そうしたほうが手っ取り早いケースは多いだろう
これは突き詰めると責任分界の問題で、フォームの役割や開発チームの構成等によって最適解は変わってくる
- 853 :デフォルトの名無しさん :2020/05/22(金) 13:33:40.82 ID:H3nV2EgY0.net
- そう言う実装がヤバいってのを
身を持って体験するのも勉強の一つじゃね?
初心者スレなんだし😅
- 854 :デフォルトの名無しさん :2020/05/22(金) 13:59:56.31 ID:IED0c2cK0.net
- 客: 「すみませーん、注文お願いします」
店員:「注文はそちらのタブレットからお願いします」(NotImplementedException)
- 855 :デフォルトの名無しさん :2020/05/22(金) 14:44:15.74 ID:YTFb7Y3X0.net
- >>853
初心者のうちに気づける失敗はどんどん経験させた方がいいと思うけど、今回の話みたいに、規模が小さいうちは悪手でも問題なくてそれに気づかず変な癖をつけてしまって、後になって大きな規模で問題に直面することもあるからちゃんと説明するのは大事だと思う。
- 856 :デフォルトの名無しさん :2020/05/22(金) 14:50:45.75 ID:I90ID8Hwa.net
- >>851
規模が大きくなるほど抽象化が重要になる
- 857 :デフォルトの名無しさん (ワッチョイ b6de-2bic):2020/05/22(金) 15:17:04 ID:aYr0yvAC0.net
- >>852
バイキング形式でもいいじゃん
店員いらんよな?
- 858 :デフォルトの名無しさん :2020/05/22(金) 16:16:46.92 ID:GLaq/xoS0.net
- ビジネスホテルの朝バイキングたのしいよね
- 859 :デフォルトの名無しさん (ブーイモ MM7f-t91P):2020/05/22(金) 17:41:35 ID:49gWHqYrM.net
- 朝バイキングあるような高級ビジネスホテルなんて泊まったこと無いな
- 860 :デフォルトの名無しさん (ワッチョイ dbde-2bic):2020/05/22(金) 17:59:13 ID:mtheMDmH0.net
- >>859
東横インにもないのかよ
- 861 :デフォルトの名無しさん :2020/05/22(金) 18:29:14.17 ID:7QsDy1x+0.net
- >>859
ドーミーインとか高級なの?
ビジネスホテルは温泉とか朝食ビュッフェついてる事優先で選ぶけどな。
- 862 :デフォルトの名無しさん (ワッチョイ 1b8c-crVl):2020/05/22(金) 18:48:22 ID:NtcwyNbz0.net
- 東横インって高級ビジネスホテルなの?
- 863 :デフォルトの名無しさん (ワッチョイ 0e2d-f9m4):2020/05/22(金) 18:51:49 ID:W0pT+Psy0.net
- >>861
ドーミーインはちょっぴり高級
- 864 :デフォルトの名無しさん (ブーイモ MM7f-t91P):2020/05/22(金) 19:05:57 ID:49gWHqYrM.net
- >>860
東横インの朝食をバイキングと呼ぶかね?
- 865 :デフォルトの名無しさん (ワッチョイ 977b-KA8w):2020/05/22(金) 19:17:57 ID:V6jLBdBV0.net
- 役に立たない議論と雑談をどれだけ続けるんだお前ら
マ板でやれ
- 866 :デフォルトの名無しさん :2020/05/23(土) 00:48:15.75 ID:KnmbZWpz0.net
- C#9.0いい感じだね
今年中に出る予定みたい
https://devblogs.microsoft.com/dotnet/welcome-to-c-9-0/
- 867 :デフォルトの名無しさん :2020/05/23(土) 00:54:53.82 ID:dlI7NS18M.net
- もう関数型言語だな
ジャパニーズドカタは完全に置き去り
- 868 :デフォルトの名無しさん (ワッチョイ 9a6a-crVl):2020/05/23(土) 01:08:33 ID:Gttmmg320.net
- 遂に登場!コピーコンストラクタ
not とか and とか basic ぽい
でも is not はいいね
Covariant returns 個人的には欲しかった機能
- 869 :デフォルトの名無しさん :2020/05/23(土) 07:48:04.30 ID:tXW5Hyqw0.net
- .NET5に合わせる感じか
結構良い感じだけど付いていけない老害は騒ぐだろうな
- 870 :デフォルトの名無しさん (ワッチョイ 032d-ze6u):2020/05/23(土) 11:45:11 ID:USRRjb5n0.net
- withってコンストラクタは呼ばれるのかな?
- 871 :デフォルトの名無しさん (ブーイモ MM26-NLVI):2020/05/23(土) 12:49:31 ID:YCd5Ugn0M.net
- 便利になるのは嬉しいけど最近、他の言語の後追いが多くねえか?
async/awaitのときみたいな、C#すげえって感動をまた味わいたいものだ
- 872 :デフォルトの名無しさん (ワッチョイ a3ad-T1cz):2020/05/23(土) 12:58:29 ID:MMWDLofe0.net
- 何気にトップレベルで直接プログラムが開始できるの嬉しいな。
小さいスクリプト的な使い方で便利になるかもしれん。
dotnet run xxxx.csみたいに出来ると言うことないな。
- 873 :デフォルトの名無しさん :2020/05/23(土) 14:33:05.59 ID:N5u382BOM.net
- >>872
個人的にはやり過ぎだと思うわ
コンパイルが不要になるわけじゃないしちょっと複雑なことしようと思ったら変数宣言も要るからあんまりメリットに思えない
スクリプトならPowerShellでお腹いっぱい
- 874 :デフォルトの名無しさん (アウアウエー Sa52-NLVI):2020/05/23(土) 14:39:56 ID:wudsPJksa.net
- CakeやC# Scriptがすでにあるしなぁ
Record周りの新機能といい、C#チームはTypeScriptを真似しようとしてるのかね
- 875 :デフォルトの名無しさん (テテンテンテン MMb6-8pht):2020/05/23(土) 14:50:01 ID:rR3WkHU8M.net
- 今時のWeb開発だとマイクロサービス指向で小物を沢山作ることが多くなってて、
振る舞いを色々備えててカプセル化とかもきっちりやったリッチなモデルよりも、単にデータクラスを関数で弄るだけみたいなスタイルが主流になりつつあるんだよ
Main省略もその文脈で言えば自然
最近のC#周りは完全にアメリカで主流な内製開発に迎合していて、日本のドカタには理解されにくいね
- 876 :デフォルトの名無しさん (ワッチョイ a3ad-T1cz):2020/05/23(土) 15:00:31 ID:MMWDLofe0.net
- >>873
コンパイルがまるで不要かのように振る舞わせたいんだと思うよ。
replできたり、dotnetコマンド見てると。
確かに、csxはどうしたいんだろうな。
個人的にはPowerShellは抵抗感あるかもしれん。
- 877 :デフォルトの名無しさん (アウアウエー Sa52-NLVI):2020/05/23(土) 16:46:21 ID:wudsPJksa.net
- 新しいものごとを追求するのはNodeとかにまかせておけばいい
静的並の型安全性、動的の起動速度、モダンな構文、モダンな機能、豊富なパッケージと全てが揃ってるからC#が追いかけても勝ち目ない
C#に求められてるのは業務向けの特性、つまり安定性、安全性、後方互換性、学習の簡単さ(シンプルさとも言える)とかだよ
ポストJavaにふさわしい言語に育ってほしい
- 878 :デフォルトの名無しさん :2020/05/23(土) 17:07:15.43 ID:MMWDLofe0.net
- 追いかけてると言うよりも、ニーズがあるんだと思うよ。
実際にはnodeとかより、同じコンパイル言語のkotlinあたりからの機能な印象が強い。
initアクセサとか。
あと、データクラスの
public data class Person(string FirstName, string LastName);
は実際、滅茶苦茶便利だと思う。これもkotlinでもできる。
ポストJavaは言うとおりだと思うけど。
- 879 :デフォルトの名無しさん (ワッチョイ 93ac-PSKl):2020/05/23(土) 17:21:33 ID:FaM1nYaB0.net
- Java並みに実行環境に依存しないの?
- 880 :デフォルトの名無しさん :2020/05/23(土) 17:39:18.54 ID:MMWDLofe0.net
- Java並の求めるレベルがわからんが、OS無しのJavaチップとかまで入れられると完敗だな。
.net coreであれば、LinuxかmacかWindowsなら、ってレベルで良いなら全然大丈夫だし、armでも動くし、
.NET 5なら純正でAndroidやiOSでも大丈夫って言えるんじゃない?
- 881 :デフォルトの名無しさん (ドコグロ MM03-zJk2):2020/05/23(土) 17:53:05 ID:/js8a+7YM.net
- >>876
> コンパイルがまるで不要かのように振る舞わせたいんだと思うよ。
それはあまり無理なくできると思うけど、今の言語仕様のままだと
class Program{
static void Main() {
}
}
を書かなくて済むって言うだけだからそんなに嬉しいような気がしないんだけど
> 個人的にはPowerShellは抵抗感あるかもしれん。
まあPowerShellは好き嫌いがあるとは思う
俺も配列周りはちょっと嫌
- 882 :デフォルトの名無しさん (ワッチョイ 6301-UYz0):2020/05/23(土) 18:28:01 ID:KZXlBn7S0.net
- GUI より簡単に目的を達せられるのが
CUIのメリットなのに、何で全部フルスペルで
冗長やねん。これの設計した奴アホか
- 883 :デフォルトの名無しさん (ワッチョイ d7da-crVl):2020/05/23(土) 18:37:48 ID:yVIq4Zo10.net
- もうF#でよくね?
- 884 :デフォルトの名無しさん :2020/05/23(土) 20:35:16.02 ID:82HS7qFwr.net
- 普通にC#はすたれていくと思う
他の言語より優れた面がかなり少なくなってきて仕様がファットになりすぎてきてる
それでいて簡便にも書けない
思想が違うのはわかるけど…
- 885 :デフォルトの名無しさん (ワッチョイ 2702-CPqG):2020/05/23(土) 20:55:20 ID:e9KeJQaL0.net
- 別に開発環境なんて何でもいいじゃん。
要望があったり、使いやすいものを選択すればいいだけ。
言語スレで言う台詞じゃないけど。w
C# は言語仕様もそうだけど、それ以上に VS が秀逸すぎる。
- 886 :デフォルトの名無しさん :2020/05/23(土) 21:24:54.50 ID:Gttmmg320.net
- >>878
未確認飛行を読むとinitなんかは随分前から課題になってたらしいね
- 887 :デフォルトの名無しさん :2020/05/23(土) 22:05:55.36 ID:KgH++zHFr.net
- c#って簡単なWinFormアプリとUnityくらいしか実際に使われていないよな
- 888 :デフォルトの名無しさん :2020/05/23(土) 22:09:11.22 ID:V60pRoIY0.net
- でもいきなりandroidやwebアプリって心が折れて死にかねんような?
- 889 :デフォルトの名無しさん (ワッチョイ bea7-Z84n):2020/05/23(土) 22:26:03 ID:+sMsxQfC0.net
- やる気の問題じゃ
- 890 :デフォルトの名無しさん :2020/05/23(土) 22:27:56.42 ID:kbRausRQ0.net
- >>887
ねーよ
- 891 :デフォルトの名無しさん (オッペケ Srbb-crVl):2020/05/23(土) 22:34:26 ID:82HS7qFwr.net
- なんだってやる気の問題ならC#使わないでアセンブラででも書けばいい
- 892 :デフォルトの名無しさん (ワッチョイ 032d-ze6u):2020/05/23(土) 22:38:04 ID:USRRjb5n0.net
- Webの学習は心が折れるわ
ASP.Net coreのチュートリアルは長い上、終わった部分にも結構な謎が残る
例えば、データベースサーバをアカウント管理とそれ以外と別にしたい場合、どうするのが正攻法なのか?とか、全然わからん
- 893 :デフォルトの名無しさん (ワッチョイ 5a01-S/TN):2020/05/23(土) 23:37:02 ID:KnmbZWpz0.net
- >データベースサーバをアカウント管理とそれ以外と別にしたい場合、どうするのが正攻法なのか?
それWebもASP.NETも関係なくね?
- 894 :デフォルトの名無しさん :2020/05/23(土) 23:51:57.43 ID:USRRjb5n0.net
- そこを1文切り取られちゃうとそうかもな
どうか、ASP.Net coreを使うときの話でって前提で頼みまんす
- 895 :デフォルトの名無しさん :2020/05/24(日) 00:05:07.40 ID:gPIK88xN0.net
- C#廃れるかな?
ここが巻き返し時だと思うけど。
Windowsで開発するときはC#一択だったのが、他の環境でもC#を選べるようになってきたんだし。
ファットと言うほどファットでないと言うか、必ずしも使わなくても良い機能は確かに増えたけど、使わなければ良いだけだと思うけどな。
Xamarinが.net本家に合流とかときめくけどね。
>>886
そうなんだ?あんまり最近読んでなかったな…
- 896 :デフォルトの名無しさん :2020/05/24(日) 00:22:33.70 ID:oKSUDOq10.net
- 廃れるとは全く思わんね
VSに寄るところが大きいけどWindows向けであればこんな簡単に開発できる環境は他にないし
- 897 :デフォルトの名無しさん :2020/05/24(日) 00:24:21.69 ID:TzQxyCjoM.net
- >>894
コネクションを複数使い分けたらいいだけだろ
EFならDbContext分けるだけ
フェデレーションとか使う手もあるが、インフラに変な前提を持ち込むのは個人的にはお勧めしない
管理対象が増えて結果的に余計に面倒になる
- 898 :デフォルトの名無しさん :2020/05/24(日) 00:37:52.59 ID:j6xo7mIMa.net
- 廃れるかどうかはAzureで.NETアプリのPaaS環境をどれだけ整備できるか次第じゃないかな
少なくとも今のAzure App Serviceはクソ以外の何者でもないし、
最近のAzureはコンテナに傾倒してるが.NETアプリをコンテナ化するニーズとか皆無なので厳しい状況だが
- 899 :デフォルトの名無しさん :2020/05/24(日) 02:00:47.62 ID:/j9jSa3n0.net
- 皆無なわけないやろ
- 900 :デフォルトの名無しさん (ワッチョイ 6301-UYz0):2020/05/24(日) 04:02:39 ID:0NoVcrVy0.net
- >>895
ちょまど事件が無ければなぁ
正式セミナーでやった以上、正式謝罪が無い限り、
まともな会社は手を出さないと思う
- 901 :デフォルトの名無しさん :2020/05/24(日) 07:59:15.47 ID:JGT9mP/J0.net
- ちょまど事件てなに?
- 902 :デフォルトの名無しさん :2020/05/24(日) 08:52:34.10 ID:gPIK88xN0.net
- あれはまぁ確かに。
やらかしたと思ったけど。
ただ、若い姉ちゃんだったから余計に問題になったんだけど、なんとかユーザーグループってえらいおっちゃんにも囲む会とかするぞ。
で、ユーザーグループでの事案を選定の対象外にするのはちょっとお門違いな気がするわ。
正式セミナーではなくて、ユーザグループの勉強会だしな。
>>901
Xamarin勉強会で誕生日祝って、結果的にサイン会とツーショット会になった。
- 903 :デフォルトの名無しさん (ワッチョイ 33a7-2bic):2020/05/24(日) 09:05:33 ID:HTbn0mhn0.net
- 救えねぇw
- 904 :デフォルトの名無しさん (アウアウウー Sac7-vdj3):2020/05/24(日) 09:12:12 ID:XUG+Lg/fa.net
- へ?それだけ??
何か刑事事件になるような話だったりパワハラセクハラ方面の倫理的な問題とかでもなくて?
開発技術選定に影響を与えるような話には思えないんだけど
>>900のいう「まともな会社」ってのはこういう話を基準に意思決定するものなのか
- 905 :デフォルトの名無しさん (ワッチョイ 33a7-2bic):2020/05/24(日) 09:21:00 ID:HTbn0mhn0.net
- >>904
えーでも気持ち悪いなぁ
人脈とか本気で考えてそう
公式に情報乗せる気ゼロに見える
セミナーでお金取ろうとか思ってそうキモー
- 906 :デフォルトの名無しさん (ワッチョイ df63-ONnU):2020/05/24(日) 09:25:30 ID:admc8lsI0.net
- https://pbs.twimg.com/media/CyKXMkvUsAAkB_g?format=jpg&name=900x900
まあこういうの見ると気持ち悪いのは確か
- 907 :デフォルトの名無しさん (ワッチョイ a3ad-T1cz):2020/05/24(日) 09:28:31 ID:gPIK88xN0.net
- まあ間違いなく悪ノリはあるんよ。
そればっかりはなんとも言いづらいんだけど。
ただ、Xamarin自体はそう悪いもんじゃないよ。ずっと使ってるけど。
- 908 :デフォルトの名無しさん (ワッチョイ a3ad-T1cz):2020/05/24(日) 09:30:09 ID:gPIK88xN0.net
- >>904
一部のコミュニティに関する事案で、それも半分以上感情論だから、
うちは一切気にしてないな。
- 909 :デフォルトの名無しさん :2020/05/24(日) 09:33:22.79 ID:0NoVcrVy0.net
- https://i.imgur.com/7OrnaHm.jpg
- 910 :デフォルトの名無しさん :2020/05/24(日) 09:34:55.56 ID:gPIK88xN0.net
- >>909
これちょまどもタブチさんも関知してないところが可哀想だったはずよ。
取り巻きの問題だと思うが。
- 911 :デフォルトの名無しさん :2020/05/24(日) 09:40:59.00 ID:0NoVcrVy0.net
- 別に本人が悪いとは言っとらんでそ。
JXUGのポジションがおかしい
MS系のセミナーなんて品川や新宿でも
やっていたんだが(SE主催とか本社主催とか)、
主催者が俺達はお前らより偉い。
理由は神に近いからだってスライドあげて
同意を得られると思う?
- 912 :デフォルトの名無しさん :2020/05/24(日) 09:44:09.04 ID:HTbn0mhn0.net
- >>910
でもね
みんなやたらと情報出て来ないし
割りかし本気でそういう意図なの?って思ったんだよ
俺らと仲良くしないとxamarinでの開発はできないからね
っていう意図に感じた
その後に気持ち悪いケーキカットでしょ?
ああ、そう、そうなのね・・・
- 913 :デフォルトの名無しさん (アウアウウー Sac7-vdj3):2020/05/24(日) 09:47:54 ID:XUG+Lg/fa.net
- えっと、気持ち悪いのはXamarinコミュニティ界隈ってことなのね?
>>905の書き込みのほうがよっぽどネットストーカーというか気持ち悪いアンチっぽく見えたんだけど
ていうかC#が廃れる原因がちょまどって話じゃなかったのね、誤読してたわ
Xamarinは使ったことないから自分にはわからん
- 914 :デフォルトの名無しさん :2020/05/24(日) 09:50:45.90 ID:HTbn0mhn0.net
- >>913
俺はMSの方針だと思ってるけどどうだろ?
そこはコミュと本体は別れてるのかな?
そうでないのかな?
- 915 :デフォルトの名無しさん :2020/05/24(日) 09:51:50.80 ID:gPIK88xN0.net
- まあJXUGに関してはどうとも言えんけど、別に喧嘩しながらやる必要もないし、逆に仲良くしながらやる必要もないぞ。
Xamarin普通に使ってるけど、とくに利益相反は無い。
Xamarin自体は良いもんだから、それが誤解されるのはちょっと悲しいわ。
あんまり変な色眼鏡で見ないほうがいいと思うの。
- 916 :デフォルトの名無しさん (ワッチョイ a3ad-T1cz):2020/05/24(日) 09:53:40 ID:gPIK88xN0.net
- 坊主憎くて袈裟まで憎いになったら、ほんとつまんない結果にしかならんよ。
- 917 :デフォルトの名無しさん :2020/05/24(日) 09:58:48.44 ID:0NoVcrVy0.net
- >>914
うちら近辺も公式に否定されなかったから、
上からそういう方針なんだなって判断された模様
- 918 :デフォルトの名無しさん :2020/05/24(日) 10:03:40.11 ID:gPIK88xN0.net
- いちいちユーザーグループのいち登壇者のいちスライドに対して反論したりしてたらきりないっしょ。
なんか、よっぽど嫌いなんだなとしか言いようがないと言うか。
ちょっとその反応度の高さに引くわ。
ユーザグループとかああいうノリ自体、輪に入る、聞き流すという行為が苦手なのかね。
- 919 :デフォルトの名無しさん :2020/05/24(日) 10:05:41.83 ID:DCX/O0u/a.net
- WebView2がC#でも使えるようになったけどフォームに貼り付けて実行するだけで
ヌルポになるんだけどなぜだろう
- 920 :デフォルトの名無しさん (ワッチョイ 9a1a-fHJf):2020/05/24(日) 10:19:41 ID:Zr7A90Cs0.net
- >>909
うわ吐きそう
- 921 :デフォルトの名無しさん (アウアウウー Sac7-8pht):2020/05/24(日) 10:20:21 ID:N7cNYcK3a.net
- >>918
ちょまど祭り上げはde:codeの公式セッションなんかでも結構やってるよ
AWSやGCPのイベントにも何度か参加したけど、それらに比べても明らかにノリが気持ち悪いのは残念ながら事実
あれ米国MSのゲストも変な顔してたしいい加減怒られるんじゃないか
- 922 :デフォルトの名無しさん (アウアウエー Sa52-NLVI):2020/05/24(日) 10:20:50 ID:q/17zy3Ka.net
- 新しいUIフレームワークでるしXamarinも終わりでしょ
- 923 :デフォルトの名無しさん (ワッチョイ 6778-crVl):2020/05/24(日) 10:36:01 ID:egXQI+sn0.net
- あれはXamarinの後継だよ
- 924 :デフォルトの名無しさん (オッペケ Srbb-jY78):2020/05/24(日) 11:24:16 ID:390U+iwor.net
- >>909
これは気持ちわりい!!!!!
- 925 :デフォルトの名無しさん :2020/05/24(日) 11:38:45.43 ID:X8UkIXV20.net
- 何の話だと思って調べてみたら、男ばかりのオタコミュあるあるやん
持ち上げにノルひととノラナイひとで対立させた以上、これをサークルクラッシュと呼ぶんだよなぁ・・・
- 926 :デフォルトの名無しさん (アウアウウー Sac7-lIs9):2020/05/24(日) 13:20:51 ID:GPV2jvNGa.net
- 日本人のメンタリティーの基盤ってつくづく「村人」なんだねw
どのセクターもみんな「村」の中の人間関係に対する関心が異様に高い。
横溝正史の小説の世界だな。
日本人のこういうところ、他人事として俯瞰してみたら陰湿でダセーと思う人の方が
多いはずだと思うんだけど
- 927 :デフォルトの名無しさん :2020/05/24(日) 13:45:48.89 ID:vlMud3Add.net
- >>921
そうなのか。
まあ怒られるなら怒られてサクッと話を終わらせてほしいな。
関係ないのにXamarinが叩かれるのはかなわん。
好きなのに。
>>922
あれはむしろXamarinが本流になるような感じよ。
- 928 :デフォルトの名無しさん :2020/05/24(日) 15:13:53.64 ID:0NoVcrVy0.net
- 名前を変えてくれないと、提案書書いても
通らないので困る。
- 929 :デフォルトの名無しさん (ワッチョイ a3ad-T1cz):2020/05/24(日) 16:23:34 ID:gPIK88xN0.net
- よくそんな基準でNG出るなぁ。
結構不思議かもしれん。
MSが明確にあのイベントのあの取り組みを後援したならそりゃNG出るだろうけど、特に止めなかった程度でコンプラ違反として扱うのはどうかと思うが。
単純に興味があるが、MSがなんていう声明を出せば良いんだろう?
別に庇ってるわけじゃなくて、一部に悪ノリがあることはわかってるが、我々の関知するべきものではないという判断なんだが。
うちは普通に使うべきシーンでは使ってるけどな。
というか技術選定にコミュニティも何も無いと言うか。
便利なのにもったいない。
- 930 :デフォルトの名無しさん :2020/05/24(日) 17:03:31.11 ID:x8aMDsmma.net
- J●UGってロクなの無いな
- 931 :デフォルトの名無しさん (アウアウウー Sac7-lIs9):2020/05/24(日) 21:48:37 ID:GPV2jvNGa.net
- ちょっと質問
SynchronizationContext.Sendって引数で渡したデリゲートが同期コンテキストのスレッドで
実行完了するまでブロックされるって理解で合ってたっけ?
- 932 :デフォルトの名無しさん (ワッチョイ 33a7-2bic):2020/05/24(日) 21:50:19 ID:HTbn0mhn0.net
- わかんねぇの使うなよ初心者
俺も知らねーけど
- 933 :デフォルトの名無しさん (ワッチョイ 032c-BHqY):2020/05/24(日) 22:50:13 ID:vethg+c+0.net
- 厳密な考え方では違うのかもしれんが
Send/Postが同期/非同期に対応してるから完了までブロックと考えていいよ
WinFormなんかは単純にInvoke/BeginInvokeで実装してるし
- 934 :デフォルトの名無しさん :2020/05/24(日) 23:16:15.55 ID:GPV2jvNGa.net
- >>933
ありがと!
- 935 :デフォルトの名無しさん (ワッチョイ 032d-ze6u):2020/05/25(月) 16:52:16 ID:CLMMg9Ns0.net
- すまんが、継続的に動かしたいタスクの抜け防止ってどうやるの?
素人考えでこんなのをタスク処理の最後に入れてるんだけど・・・・もっとまともな書き方あるのかな
while (cancellationToken.IsCancellationRequested == false){
await Task.Delay(1000);
}
- 936 :デフォルトの名無しさん (アウアウウー Sac7-8pht):2020/05/25(月) 17:22:15 ID:83qlHvUWa.net
- やることが無くなったんなら無駄に待機しないでそのまま終了したらいいだろう
何がしたいのかさっぱり分からん
- 937 :デフォルトの名無しさん (ワッチョイ 9a84-BCZG):2020/05/25(月) 17:24:53 ID:qg6WFaTF0.net
- 別に問題ないと思うけど
タスクの最後にwhileループって言うのが良く意味がわかんないけど
バックグラウンドにしたい処理をwhileの中に記述して「IsCancellationRequested」が
「false」な間whileで無限ループが普通じゃないかな
あとDelayが1秒ならばどうでも良いのかもだけど、Delayに「cancellationToken」を
指定してエクセプションをキャッチするようにしておくと、Delay時間待たなくても
すぐに処理終われるとか
- 938 :デフォルトの名無しさん (ワッチョイ 032d-ze6u):2020/05/25(月) 17:39:01 ID:CLMMg9Ns0.net
- ありがとう!
WebSocket通信のタスクで終わられちゃ困っていて、タスクが終わられると困るだけでwhileで回すものもないし・・・・これで凌いでたよ
でもこんなの見ないってことは、もっと根本的に違った別な正攻法があるのかな
- 939 :デフォルトの名無しさん (ワッチョイ 6301-UYz0):2020/05/25(月) 17:49:37 ID:c+rZ/LtC0.net
- win32api的には、WaitForSingleObject
かな
- 940 :デフォルトの名無しさん (ワッチョイ 4e2c-5qFb):2020/05/25(月) 18:22:47 ID:gis+qwRr0.net
- JavaScript で非同期通信は、callback 関数を指定して待つだけ。
タイムアウト時間が過ぎたら、エラーになるだけ
while みたいな、busy loop を使わない。
CPU が100% に張り付いてしまうから
- 941 :デフォルトの名無しさん (ワッチョイ 032c-BHqY):2020/05/25(月) 20:44:15 ID:/pdJGglT0.net
- 通信のタスクってのがよく分からんよ
インスタンスとタスクをごっちゃにしてるように感じる
- 942 :デフォルトの名無しさん (アウアウウー Sac7-lIs9):2020/05/25(月) 21:43:15 ID:GUauqgR5a.net
- まあ設計というかロジックに問題があるようにしか正直聞こえないけど、
そこはいいでしょ別に
- 943 :デフォルトの名無しさん (ワッチョイ fa3c-bAg/):2020/05/25(月) 22:31:36 ID:3aP0Z4na0.net
- つーか、Monoで学ぶC#オブジェクト指向とか言う本、わざわざMonoで学ばんでも普通のVSでマナびゃいい内容なんすけど。
MonoでやるならLinuxGUI作る方法でも教えてくれる方がよほどいい。
- 944 :デフォルトの名無しさん (ワッチョイ fa3c-bAg/):2020/05/25(月) 22:34:13 ID:3aP0Z4na0.net
- マジでC#でLinuxアプリある程度で良いんで作れるようにして欲しい。
QtとかGtk+とかもうね、泣けてキル。
- 945 :デフォルトの名無しさん (ワッチョイ fa3c-bAg/):2020/05/25(月) 22:35:21 ID:3aP0Z4na0.net
- Xamarinって情報量とか少なそうだけど、まともにスマホアプリ作れるんですか?
迷ってるなら、Javaでやったほうがいいですか?
- 946 :デフォルトの名無しさん (ワッチョイ a3ad-T1cz):2020/05/25(月) 22:40:48 ID:UFuP99WV0.net
- >>945
使ってるし、まともにアプリ作れるよ。
任天堂も一つのアプリで使ってるらしいけど。
俺はXamarin.Formではなくて、Xamarin.Android使ってるけど、ほとんど普通のAndroid開発の言語がC#になった感じで、特に固有の情報は必要でない。
悩むんならJavaでやるよりkotlinでやったら良いんじゃない?
- 947 :デフォルトの名無しさん (ワッチョイ 6301-UYz0):2020/05/25(月) 22:42:27 ID:c+rZ/LtC0.net
- skiasharpが公式。
こんなのでどうしろと。
で例の事件に戻る
- 948 :デフォルトの名無しさん :2020/05/25(月) 23:21:56.50 ID:UFuP99WV0.net
- XamarinはFormsだけじゃないよ。
別に無理にSkiaSharp使わなくても。
例の事件引きずる割にはあんま知らんのな。
- 949 :デフォルトの名無しさん :2020/05/26(火) 02:34:10.49 ID:O4WcavVK0.net
- skiasharpはxamarinの一部だw
- 950 :デフォルトの名無しさん :2020/05/26(火) 07:56:44.84 ID:HYoEE9nX0.net
- 意識せずに使えるって言ってんのに。
どうしてもアンチしたいならそう言いなよ。
- 951 :デフォルトの名無しさん :2020/05/26(火) 10:55:16.55 ID:O4WcavVK0.net
- 無理筋の擁護は迷惑だから止めなよ。
個人で全ての仕様を決定して良いならそうするさ、
問題なのはスポンサーを説得出来ない事だよ。
- 952 :デフォルトの名無しさん :2020/05/26(火) 11:17:56.86 ID:i0q/U3sp0.net
- unityできればc#もできますか(´・ω・`)
- 953 :デフォルトの名無しさん :2020/05/26(火) 11:24:23.50 ID:G8RqiJh80.net
- C#できないとunityもできません
- 954 :デフォルトの名無しさん :2020/05/26(火) 11:55:03.61 ID:gxc82pqW0.net
- Unityで造った3Dゲームを
C#はそのままでUnityじゃなくてVC#だけの環境でコンパイルして遊べますか?
- 955 :デフォルトの名無しさん :2020/05/26(火) 11:56:54.86 ID:6ileE2Zca.net
- できません
- 956 :デフォルトの名無しさん (スププ Sdba-T1cz):2020/05/26(火) 14:42:23 ID:wUEZ7fxyd.net
- 擁護とか言われるとなんかモヤるわぁ。
ああいうのは良くないと認めた上で、Xamarin自体は悪くないよと言ってるんよ。
スポンサーを説得できないのはまた別問題じゃん。
そこまでして使うもんではないと言う判断も一つ、
提案自体へのニーズというかXamarinがふさわしいと思うポイント一つ、
提案と提案力の問題が一つ、
色々合わさって技術選定するんだから。
主観的に気持ち悪いしスポンサーにオッケーって言わせられないから使わないよーってのは、個人の能力や主張であって、それを理由にされるのはなんか違う気がするわ。
一時期のアンチMSの人たちと変わらん精神性に見える。
- 957 :デフォルトの名無しさん (ワッチョイ 6301-UYz0):2020/05/26(火) 14:53:44 ID:O4WcavVK0.net
- ITバブルの会合にヘリコで乗り付けて、
都知事激怒させて資金注入中止させた
事件があっただろ。それと同じ。
軽薄な連中が遊び半分にやってるプロダクトと
レッテルを貼られたから大規模開発の
予算が取れない。だからせめて名前を変えてくれないと未来は無いって言っているの。
内容については言及していない。
- 958 :デフォルトの名無しさん (ワッチョイ ba52-NhWw):2020/05/26(火) 15:54:06 ID:gtoMtdIk0.net
- そのレッテルってお前さんの周辺のごく狭い範囲でのみ認識されてるローカルな話なんでないの?
世間一般でもそうなのか?
- 959 :デフォルトの名無しさん (スププ Sdba-T1cz):2020/05/26(火) 15:57:37 ID:wUEZ7fxyd.net
- レッテルを今も貼り続けてるのは自分たちじゃん。
その調子だと名前変えてもどうせ未来は理由を見つけるんでしょ。
そもそも、個人的にも使ってるが、仕事でもそれなりに大規模開発の案件で何プロダクトも予算どころか本番投入できてるからその主張が謎なんよね。
まあもう疲れたし良いわ。
何言ったって無駄っぽいし。
- 960 :デフォルトの名無しさん (スププ Sdba-T1cz):2020/05/26(火) 15:59:22 ID:wUEZ7fxyd.net
- >>958
それしか見る気ないか、気づいてないんでしょ。
スポンサーが、とか言ってるし。
時代は変わったと言う気も無いし、調べる気も無いってこった。
- 961 :デフォルトの名無しさん (ワッチョイ cb59-x2L0):2020/05/26(火) 16:03:44 ID:Y1qBNpza0.net
- どうでもいい話いつまでやってんの?
否定されても自分が便利と思うなら使ってればいいじゃん。
- 962 :デフォルトの名無しさん (ワッチョイ 9a6a-OZlI):2020/05/26(火) 16:20:40 ID:a4j1g6SW0.net
- そういや、次スレどうすんの?
ワッチョイない141を使い終わってから?
- 963 :デフォルトの名無しさん (ワッチョイ 032c-BHqY):2020/05/26(火) 16:28:04 ID:4+roRX2l0.net
- ワッチョイ有無で並立していいらしいからいつも通り980で新スレ立てるだけだよ
- 964 :デフォルトの名無しさん (ワッチョイ 9a6a-OZlI):2020/05/26(火) 16:31:27 ID:a4j1g6SW0.net
- なるほどありがとう
- 965 :デフォルトの名無しさん :2020/05/26(火) 16:59:22.59 ID:UeJz6oGUM.net
- イベントハンドラがよくわかりません。
PaSoLiにかざされたFelicaの内容をForm上に表示するプログラムを作成しています。
かざされた、というのを判定するためにはどういうイベントハンドラの設定が必要ですか?
ひとまずFormにタイマーを設定して、時間経過毎にPaSoLiの状態をチェックする…というのを考えたのですが、
他に何かいい知恵がありましたら教えてください。
よろしくお願いします。
- 966 :デフォルトの名無しさん :2020/05/26(火) 17:05:55.42 ID:O4WcavVK0.net
- >>965
どこのカードリーダとどのような接続
をしている?
開発キットが付いて来なかった?
- 967 :デフォルトの名無しさん :2020/05/26(火) 17:14:46.85 ID:UeJz6oGUM.net
- >>966
Sony PaSoRi 3.0 と Win10機をUSBで接続しています。
開発キットは…使っていません。最終的に簡単なタグを作成したいので、WinSCardをラップし使用しています。
(Sonyの無料スターターキットは書き込みの関数がなかったので…)
情報後出しになってすみません…
- 968 :デフォルトの名無しさん :2020/05/26(火) 17:27:47.85 ID:O4WcavVK0.net
- SCardGetStatusChange()で変化を検知して
delegate でUIにコールバックするか
イベントを使うかかな
- 969 :デフォルトの名無しさん :2020/05/26(火) 17:40:48.36 ID:XnLSD37X0.net
- >>938
うーーん、処理はしないけどメソッドを抜けないようにする意味が分からないのは
そのままなんだけど、ずーーーとそこでとまっていれば良いのであれば「Delay」の
引数を「-1」にすればwhileで回す必要ないよ
で、whileで回すのをあまり見ないのは、みんな大好き美しいプログラミングだと
空ループはシステムに任せて、各種イベントで処理の振り分けを行って必要な部分
だけを非同期処理ってやり方をするので、自分でループ処理を用意する必要が
ないってのが基本
でも、実際にはあらゆる処理に自分が必要とするイベントが実装されているとは
限らないので、独自のイベントを返してくれる非同期処理を作成するときには
なんらかのループ処理が必要になる
ただ、サンプルレベルのプログラムだとそこまで実装をしている例は冗長なので
書いている人が少ないので、実用的なアプリケーションのソースコードとかを読ま
ないとループ型の非同期処理って見かけないだけだと思うけど
- 970 :デフォルトの名無しさん (アウアウクー MMfb-egCw):2020/05/26(火) 17:52:50 ID:UeJz6oGUM.net
- >>968
なる…ほど…?
…正直よく理解できてないのですが、その2つキーワードにして調べてみます。
ありがとうございます。
- 971 :デフォルトの名無しさん (ワッチョイ a302-crVl):2020/05/26(火) 22:40:42 ID:nfOZPr0+0.net
- Visual Studio2019を更新したら今まではメソッドの文字色が黄色だったはずが白くなってしまったのですが、これは更新内容に含まれてる事なんでしょうか?
- 972 :デフォルトの名無しさん :2020/05/26(火) 22:53:49.21 ID:nfOZPr0+0.net
- 連投すみません
ローカル変数は水色、外のフィールド変数は白であったはずがローカル変数も白になっているなど、関数の色以外にも色々変わってしまったようです・・・。
すごく見づらいのですがこれは更新時にテーマの設定ファイルか何かが破損してしまったのでしょうか?
- 973 :デフォルトの名無しさん (ワッチョイ a302-crVl):2020/05/26(火) 23:13:17 ID:nfOZPr0+0.net
- 度々すみません、自己解決しました。
オプション -> テキストエディタ -> C# -> 詳細 -> エディターの配色をVisual Studio 2019にしたら元に戻りました。
アプデを行ったらなぜかエディターの配色がVisual Studio 2017になっていたようです
- 974 :デフォルトの名無しさん (ワッチョイ 9719-qwq+):2020/05/26(火) 23:25:29 ID:G8RqiJh80.net
- 俺も配色戻っててイラッとした
- 975 :デフォルトの名無しさん (ワッチョイ 8b01-I6Yg):2020/05/26(火) 23:27:51 ID:gXLmrSCn0.net
- 俺もだった アプデ後なんか見辛いなーって思ってたありがとう
ほかにも変な設定に勝手に変えられて気づいてないところありそうだ
- 976 :デフォルトの名無しさん (ワッチョイ da89-crVl):2020/05/26(火) 23:29:37 ID:pUNOqgdh0.net
- Name = 太郎, Age = 27, Score = 92
Name = 次郎, Age = 23, Score = 89
Name = 太郎, Age = 27, Score = 100
Name = 三郎, Age = 20, Score = 95
Name = 次郎, Age = 23, Score = 61
このようなListがあり、以下のように集計したいのですが、
LINQで可能でしょうか
Name = 太郎, Age = 27, Score = 192
Name = 次郎, Age = 23, Score = 150
Name = 三郎, Age = 20, Score = 95
- 977 :デフォルトの名無しさん (ワッチョイ 1aad-cFKA):2020/05/26(火) 23:32:01 ID:xP2EobkM0.net
- >>976
できるよ
- 978 :デフォルトの名無しさん (ワッチョイ 1aad-cFKA):2020/05/26(火) 23:34:30 ID:xP2EobkM0.net
- https://www.sejuku.net/blog/47220#Sum
- 979 :デフォルトの名無しさん :2020/05/26(火) 23:55:57.69 ID:pUNOqgdh0.net
- >>978
ありがとうございます
リンク先の例でいうと、ClassName(やその他の項目もあればそれ)も表示させたい場合はどのようにすればいいですか?
- 980 :デフォルトの名無しさん (ワッチョイ 1389-moxv):2020/05/27(水) 00:07:17 ID:Pggemlyq0.net
- >>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):2020/05/27(水) 00:15:29 ID:DUgyxf22d.net
- >>980
キーが1つならGroupbyでわざわざ匿名クラス使う必要ないんじゃね?
- 982 :デフォルトの名無しさん :2020/05/27(水) 02:33:41.36 ID:QazEq+CO0.net
- WinForms版WebView2に、WebBrowserのObjectForScripting相当の機能があれば教えてください。
- 983 :デフォルトの名無しさん :2020/05/27(水) 04:28:54.83 ID:Z8ofXxl7r.net
- ゴミ品質の宝庫サムライのリンクつけるなよ
- 984 :デフォルトの名無しさん :2020/05/27(水) 07:23:43.27 ID:Bvk+i7ky0.net
- 学校でCを習っていながら実務ではjavaとC#しかやったことがありません
お陰でポインタとか実務で使ったことが無いのですが、ポインタの考えを活用するシュチュエーションはC#開発を進めると出てくるでしょうか?
- 985 :デフォルトの名無しさん :2020/05/27(水) 07:52:45.69 ID:zpQipMg10.net
- 初心者ですけど、Win32API使う時にCの知識が役にたった
- 986 :デフォルトの名無しさん :2020/05/27(水) 09:08:23.02 ID:sy4nr1lC0.net
- >>980
次スレよろ
- 987 :デフォルトの名無しさん :2020/05/27(水) 09:13:12.39 ID:H3YZJB5x0.net
- >>984
基本出てこない
C#でポインタは使えないわけではないが使わないで実装できる手段がたいてい存在する
出てきてもC/C++ほど活用するケースは少ない
- 988 :デフォルトの名無しさん :2020/05/27(水) 09:19:38.91 ID:Z8ofXxl7r.net
- >>984
画像編集でピクセル加工処理するときに使った
- 989 :デフォルトの名無しさん :2020/05/27(水) 09:37:11.33 ID:sy4nr1lC0.net
- >>981
ClassName引き出すのはどうするんだろ?
- 990 :デフォルトの名無しさん (アウアウウー Sac5-5vhd):2020/05/27(水) 09:58:43 ID:liCJZGAla.net
- 必要ない
x => x.Name でいい
- 991 :デフォルトの名無しさん :2020/05/27(水) 10:10:49.20 ID:wHIUQvvs0.net
- 次スレ立てるね
- 992 :デフォルトの名無しさん :2020/05/27(水) 10:15:14.28 ID:wHIUQvvs0.net
- 次スレ
ふらっと C#,C♯,C#(初心者用) Part148
http://mevius.5ch.net/test/read.cgi/tech/1590542079/
- 993 :デフォルトの名無しさん :2020/05/27(水) 10:16:57.67 ID:wHIUQvvs0.net
- あ、ごめんワッチョイ入れ忘れたっていうか注意文言部分全部入れ忘れた
立て直しお願いします
- 994 :デフォルトの名無しさん :2020/05/27(水) 10:18:24.20 ID:wHIUQvvs0.net
- -----------------------------------------
!extend:checked:vvvvv:1000:512
!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
- 995 :デフォルトの名無しさん (ワッチョイ 9394-J1D8):2020/05/27(水) 10:49:27 ID:n9K/Qc/t0.net
- 先生!
MFCのAfxBeginThreadでUARTの通信スレッド起動していましたが、C#だとどうやるのですか?
スレッドは外部変数でループを抜けて終了する仕様でループ内は受信したデータをファイルにロギングするだけです。ループ内はSleep(1)で若干負荷を下げてます。
- 996 :デフォルトの名無しさん :2020/05/27(水) 11:46:42.78 ID:VAOyF+uoa.net
- >>995
ループでも別にいいと思うけど、ポーリングなら素直にタイマー使った方が簡単じゃないかな
- 997 :デフォルトの名無しさん :2020/05/27(水) 17:42:50.18 ID:oFYn/j/i0.net
- >>905
SerialクラスのDataReceivedイベントを使えば特にスレッドを切らなくてもデータ
来るたびに特定の処理をさせるみたいなこと出来るけど
- 998 :デフォルトの名無しさん (ワッチョイ dbda-+GDy):2020/05/27(水) 18:10:33 ID:IQNb7uUG0.net
- 質問いいですかぁ?
- 999 :デフォルトの名無しさん (ワッチョイ 4101-ZnxB):2020/05/27(水) 18:16:02 ID:JktWhmx60.net
- いいよ
- 1000 :デフォルトの名無しさん (アウアウクー MM0d-DHkq):2020/05/27(水) 18:18:54 ID:amwFvGuGM.net
- では早速
- 1001 :2ch.net投稿限界:Over 1000 Thread
- 2ch.netからのレス数が1000に到達しました。
総レス数 1001
280 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★