X



ふらっと C#,C♯,C#(初心者用) Part147
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん (エムゾネ FF9f-HF0o)
垢版 |
2020/02/19(水) 17:25:41.55ID:IsrGexiaF
!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
0002デフォルトの名無しさん (ワイーワ2 FFdf-IPX/)
垢版 |
2020/02/19(水) 17:29:40.75ID:edMDbkMkF
C#
0003デフォルトの名無しさん (ワッチョイ ff63-ufZq)
垢版 |
2020/02/20(木) 01:30:01.42ID:0E34SqOf0
ガチガイジとスルーもできないキッズには、ワッショイは何の効果もないと十分証明されたろ
0006デフォルトの名無しさん (アウアウウー Sae7-icJa)
垢版 |
2020/02/20(木) 03:04:29.36ID:M4vgGbqza
>>3
だから、その通りだけどそんなこと言っても「バカの壁」の向こう側には絶対通じないw
特に日本はそういう国ですってw
そんなこといい歳こいてたら毎日嫌というほど体験してるよね

ワッチョイは有害無益なだけだけど、害と言っても別にたいしたことないので
それでイラショナルな皆さまの気が済むなら目くじら立てることもないと思う。
愚かしいとはいつも思ってるけどwww
0007デフォルトの名無しさん (ラクッペ MM87-wHG4)
垢版 |
2020/02/20(木) 07:02:00.97ID:lwE/hX+lM
本当に証明された?
ワッチョイないと自演楽だからコロコロ変える奴いそうだが
0009デフォルトの名無しさん (アウウィフ FFe7-IPX/)
垢版 |
2020/02/20(木) 10:30:18.93ID:sbHTvmgoF
>>6
新型チュンコロ感染と一緒で常在化しててもただちに影響はありませんな
0010デフォルトの名無しさん (アウアウウー Sae7-icJa)
垢版 |
2020/02/20(木) 12:38:26.36ID:M4vgGbqza
言っても無駄だけど、普通の人は2chくんだり、特にこんな人口が少ない板の
人口が少ないスレで「自演」とやらをやりたいなんて動機を持ってない。

もちろんこの世は普通じゃない人もいる。
その普通じゃない人がワッチョイ付いてるぐらいで普通じゃない行為をギブアップするだろうか?
ありえなんじゃないの?

あんあの気が済むだけだよ。
だいたいそもそも他人の自作自演が気になること自体が普通じゃないよ悪いけど。
それ、何が問題なの?意味が分からないよ。

日本って地方の条例どころか国の法律がこういう目的や実効性を吟味せずに
感情論で制定される感情論の国なんだよね。韓国と100%同じ
0011デフォルトの名無しさん (ラクッペ MM87-wHG4)
垢版 |
2020/02/20(木) 12:40:53.51ID:lwE/hX+lM
ワッチョイのどこが有害なのか
なにもしなきゃ無害だろう
0012デフォルトの名無しさん (アウウィフ FFe7-IPX/)
垢版 |
2020/02/20(木) 12:43:48.28ID:sbHTvmgoF
防衛する側としてはワッショイのおかげで見なくて済むから気が済むのは確か
0013デフォルトの名無しさん (ワッチョイ 6388-qdXs)
垢版 |
2020/02/20(木) 13:22:03.09ID:mvd02NB50
家に鍵かけたって本気の泥棒はどこからでも入ってくる
だから鍵なんて無くすべきだって主張?

一部でも効果があり、他者にデメリットが無いならあっていいんじゃいの?
一部というのが例え1%だろうとあって困らないならあっていいじゃん

デメリットがあるなら効果のある範囲とデメリットの内容の天秤になるのはわかる
そしてその天秤具合は人それぞれなので議論しても答えは出ない宗教論争と一緒
0014デフォルトの名無しさん (ワッチョイ cf2d-z3z/)
垢版 |
2020/02/20(木) 14:26:02.37ID:0JvS6qsQ0
変な書き込みがあっても、普通は気にしなけりゃいいだけだろう
だけど統合失調症の人には、そういう書き込みが目に入るだけで発狂しちゃうんだろうな
ワッチョイは統合失調症の閲覧者のためにあるようなもん
0018デフォルトの名無しさん (ワッチョイ ffb9-icXw)
垢版 |
2020/02/20(木) 15:36:09.44ID:jdtbGwr30
相談させてください。

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)」で適切でしょうか。

どうぞよろしくお願いいたします。
0020デフォルトの名無しさん (ワッチョイ ffb9-icXw)
垢版 |
2020/02/20(木) 16:01:01.11ID:jdtbGwr30
>>19
ありがとうございます。

なるほど。。。メジャーなものでもこういう手抜き実装ってあるものなんですね。
不具合だと認められて直してもらえる雰囲気でもなさそうなら、
諦めて自前で EqualityComparer を作るしかないでしょうか。

ただこうなってくると、>>18 で使っている ValueTuple の
GetHashCode の実装も怪しく感じてしまうのですが、
もしそちらのソースコードもご存知でしたら教えていただけないでしょうか。
(貼り付けていただいた Reference Source では見つかりませんでした)

よろしくお願いいたします。
0022デフォルトの名無しさん (ワッチョイ e37b-z+Zk)
垢版 |
2020/02/20(木) 17:21:18.55ID:Bpu8FWYY0
>>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推奨
0023デフォルトの名無しさん (ワッチョイ ffb9-icXw)
垢版 |
2020/02/20(木) 17:37:44.28ID:jdtbGwr30
>>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()))
と書いたほうがコードの目的が分かりやすいかなと思いました。

それではこのあたりで失礼いたします。
ご親切にどうもありがとうございました。
0025デフォルトの名無しさん (ワッチョイ 2335-wHG4)
垢版 |
2020/02/20(木) 18:57:40.71ID:Pb7WanUc0
タプルに一括で関数適用する文法でもあるのかと思った
0028デフォルトの名無しさん (ワイーワ2 FFdf-HF0o)
垢版 |
2020/02/21(金) 12:21:46.43ID:5cQWFY2cF
おめ
0029デフォルトの名無しさん (ラクッペペ MM7f-wHG4)
垢版 |
2020/02/21(金) 12:39:57.96ID:Z2lAagbxM
Twitterでやれ
0030デフォルトの名無しさん (JP 0Hdf-Hkjj)
垢版 |
2020/02/21(金) 15:08:34.18ID:4h0xZa5sH
matrixのライブラリ(C#版 & F#版)
ttp://x0000.net/topic.aspx?id=3711-0
matrixのテンプレート ライブラリ(C++版)
ttp://x0000.net/topic.aspx?id=3674-0
アルファ・ラボ|学術掲示板群
(理系 文系 工学 語学)
ttp://x0000.net/
0031デフォルトの名無しさん (ワッチョイ cf2d-z3z/)
垢版 |
2020/02/22(土) 15:57:17.59ID:7CwG8WAb0
各DIコンテナがやってくれる注入作業って、どういう仕組みで行われているの?
インターフェイスやらコンストラクタの引数やらをリフレクションで取ってきて、注入してるのかな?
0033デフォルトの名無しさん (ワッチョイ cf2d-z3z/)
垢版 |
2020/02/22(土) 18:39:28.34ID:7CwG8WAb0
>>32
ほんと、不思議で不思議でたまらなかったわ
ありがとう
0035デフォルトの名無しさん (ラクッペペ MM7f-wHG4)
垢版 |
2020/02/23(日) 00:10:20.60ID:wbGqawi7M
くだらねえ������
0036デフォルトの名無しさん (ワッチョイ b35f-Nz9x)
垢版 |
2020/02/23(日) 11:37:03.29ID:h4Sd0hn50
すいません。名前の付け方で悩んでます
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なんて名前でいいものか・・・
0038デフォルトの名無しさん (アウアウウー Sae7-VXi+)
垢版 |
2020/02/23(日) 12:15:23.08ID:U1SoOOADa
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とかそういう別クラスを作ってそっちのプロパティとして持たせるほうが良い気も
0039デフォルトの名無しさん (アウアウウー Sae7-icJa)
垢版 |
2020/02/23(日) 15:06:59.69ID:GBgAuRZAa
>>36
名前が適切かどうかはそれだけの情報では誰も判断できないでしょうw

質問は変数のネーミングだけど、そもそも変数(フィールド)をそのまま公開するのは
普通は良くない作法だよね。

読み出し専用のプロパティーにした方がいいと思う。
シングルトンにする必要性は個人的には疑問
0044デフォルトの名無しさん (アウウィフ FFe7-IPX/)
垢版 |
2020/02/25(火) 13:15:34.49ID:FzVRg2bhF
static Struct
0045デフォルトの名無しさん (ワッチョイ 6388-qdXs)
垢版 |
2020/02/25(火) 13:22:35.51ID:5IAL5cM20
singletonならインスタンス生成タイミングを制御できる利点がある
初期の立ち上げを極力軽くしたい時とか
そういうのあんま気にしなくていい環境ならstaticでもいいかと
0046デフォルトの名無しさん (ワッチョイ 83a7-FTwr)
垢版 |
2020/02/25(火) 13:30:56.90ID:rfLfmv0Z0
>>43
デバイスなどのアクセスでインスタンス2つ持ちが意味無いかバッティングするから1つにしたいとき?

ログ出力とか単一のファイル書き込み読み込み
DBアクセス(同時アクセス不可時)とかいいかな?

一応やっといてバッティング対策必要だったらやる感じで?
(まあ、だいたいライブラリ側でやってくれっけど)
0047デフォルトの名無しさん (ワッチョイ a324-D8OL)
垢版 |
2020/02/25(火) 14:03:18.98ID:K+FIgRaj0
>>45
static classだって静的コンストラクタで実質同じ事できるじゃん
_instance ?? (_instance = new Class())って形と実質同じだよね
まぁ継承使えないとか制約多いからってことなんだろうけど、staticおじさんアレルギーなのか知らないけど死んでもstaticは使わないって風潮もどうかと思う昨今
0048デフォルトの名無しさん (アウアウウー Sae7-icJa)
垢版 |
2020/02/25(火) 14:12:26.94ID:o7stKPona
ほとんどの場合ちょっと大げさ過ぎる感じなんだよねシングルトン。

唯一であることを保証するのにそこまで強制力が必要か疑問だし、
唯一であることを保証する責任を「その」クラス自身に負わせるのが本当に妥当かどうかも疑わしい。

ほとんどの場合、プログラムで唯一のものを共有したいなら、
共有オブジェクト取得用のstaticクラスを作る方が普通に素直な考え方に感じるよね。

必要論者はポカ防止のために強制力が必要って言うんだろうけど
それは問題のすり替えだと思うんだよね。
そんなポカが起こる状況自体が間違ってるよね。

もちろん絶対の強制力が必要なケースだってたぶんあるとは思うけど。

>>47
まあ少なくとも、一度staticクラスでシングルトン実装しちゃうと
今度はマルチにしたいと思っても簡単にできない問題はある。

だからstaticクラスでシングルトンも個人的にはちょっと気持ち悪く感じる
0049デフォルトの名無しさん (ドコグロ MM67-lfYl)
垢版 |
2020/02/25(火) 14:16:11.11ID:9IyrqwVFM
激しく同意
シングルトンを使う奴はほぼ例外なく「インスタンスを唯一に制限するため」を言い訳にして、その実はグローバル変数が欲しいだけ
実際にはインスタンスが一つでなければならないクラスなどほとんどない
一つしか作れないのではなく「アプリで一つしか必要ない」のであれば、>>48のようにstatic寄せ集めクラスを作るべき
0050デフォルトの名無しさん (ワッチョイ ff01-pEhb)
垢版 |
2020/02/25(火) 14:33:00.25ID:oSeHo6cg0
>>47
>static classだって静的コンストラクタで実質同じ事できるじゃん
static classのコンストラクタがいつ実行されるかはコントロールできないよ

確実にlazy loadingしたい場合や
高価なリソースなので状況によっては解放したい場合とか
いろいろと使いどころある

逆にシングルトンは面倒くさいから
static classで間に合うユースケースならstatic使っとけばいい
0051デフォルトの名無しさん (ワンミングク MM9f-RsP6)
垢版 |
2020/02/25(火) 15:01:43.07ID:IPCihoyTM
おかしい…「モダン言語と現行ライブラリ下においてはシングルトンパターンを適用することは通常開発下ではまずないが」という大前提がまったく共有されていない…
もしかして10年前の感覚で脳内敵を殴りつけてスッキリ喋ってる…?
0052デフォルトの名無しさん (ワッチョイ ff63-ufZq)
垢版 |
2020/02/25(火) 15:04:06.03ID:9vKHdmbh0
テメエも皮肉ってればいいと思ってんなよガキ
0054デフォルトの名無しさん (ワッチョイ 6388-qdXs)
垢版 |
2020/02/25(火) 17:25:56.66ID:5IAL5cM20
singletonがデザパタの中で意義も理解しやすく実装もそこそこ分かりやすく楽で有効に利用できると思わせる範囲が広いから無駄に広まってしまった
他により有効な手段ができても単一インスタンスだからsingletonで!っていう脳死とstaticは結局グローバルだからとにかく駄目!とかいうこれまた脳死が合わさってしぶとく使われているだけじゃない?
0056デフォルトの名無しさん (ワッチョイ ffad-KTmx)
垢版 |
2020/02/25(火) 20:48:36.91ID:CjA4SEoV0
GoF初版は4半世紀前のJavaすら出る前だぜ
そろそろ新しい版を誰か書いて
0060デフォルトの名無しさん (ワッチョイ 8a01-k1AF)
垢版 |
2020/02/26(水) 01:29:08.48ID:sMj0eedP0
>>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もロードされてたはず
0063デフォルトの名無しさん (スッップ Sdea-Y7lR)
垢版 |
2020/02/26(水) 12:01:04.52ID:QHwYyYy1d
当たり前なんだけどsingletonでしか実現できない話じゃなくてsingletonなら自然にできる話だからね
singletonじゃなくたって実現方法はいくらでもある
こうすりゃできるなんてわかりきった上で話してるんだよ
0064デフォルトの名無しさん (ワッチョイ b301-8X5p)
垢版 |
2020/02/26(水) 12:04:17.00ID:xo5HgIYJ0
>>63
そのsingletonが有用な場面ってのを解説してくれ
0068デフォルトの名無しさん (JP 0H82-SZE8)
垢版 |
2020/02/26(水) 14:16:45.27ID:oid0ZUpoH
ある強力なFor関数を紹介いたす(C#)
ttp://x0000.net/topic.aspx?id=3630-0

アルファ・ラボ|学術掲示板群
(理系 文系 工学 語学)
ttp://x0000.net/
0070デフォルトの名無しさん (アウアウウー Sa2f-A7eh)
垢版 |
2020/02/26(水) 17:52:39.14ID:FtoTEkgba
>>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();
  }
}
0073デフォルトの名無しさん (アウアウウー Sa2f-A7eh)
垢版 |
2020/02/26(水) 18:21:41.53ID:FtoTEkgba
>>71
揚げ足取りはいいけど、よく読んでからにして欲しいよね
0074デフォルトの名無しさん (ワッチョイ ca42-DFeu)
垢版 |
2020/02/26(水) 18:22:19.21ID:uSMym8r00
>>72
つか、インスタンスは自分自身の中にスタティックで用意する
そのクラスのスタティックプロパティー経由でインスタンスを参照するが
最初の参照時にシングルトンクラスで自身の中に生成する

だから外部で使うクラスはインスタンスを明示的に生成しません
0075デフォルトの名無しさん (ワッチョイ 4e7c-FlcA)
垢版 |
2020/02/26(水) 18:30:13.02ID:/kjPVa9J0
> インスタンスは自分自身の中にスタティックで用意する
private static Form2 Singleton { get; set; }
用意してるな

> 外部で使うクラスはインスタンスを明示的に生成しません
public static void ShowSingleton()
{
 if (Singleton == null || Singleton.IsDisposed) Singleton = new Form2();
してないな
0078デフォルトの名無しさん (ワッチョイ ca42-DFeu)
垢版 |
2020/02/26(水) 18:50:11.01ID:uSMym8r00
>>77
シングルトンの最大の特徴は、複数のクラスから一つのインスタンスを参照できることだから
それはシングルトン的なものでもない

>>75
シングルトンではSIngletonクラスの内部にたった一つのインスタンスがプライベートで格納されている
それをSingletonのスタティックメソッドやスタティックプロパティーで参照するのがGOFのデザパタだ
0079デフォルトの名無しさん (ワッチョイ 9e2d-9Aak)
垢版 |
2020/02/26(水) 19:43:16.15ID:JBdLkQQ40
シングルトンって、昔は、複数インスタンスが作られる可能性を潰すためにやってたんだろうけどさ
今は、主にDIコンテナへの指示みたいなもんとして役立ってんじゃねえのか?
0080デフォルトの名無しさん (ドコグロ MM0b-ff41)
垢版 |
2020/02/26(水) 20:21:07.70ID:J/Z+GoCJM
DIコンテナ使ってるなら、DIコンテナが自動的にインスタンス化して単一のインスタンスを各所へ注入してくれるから、
GoFのシングルトンパターン(というかグローバルインスタンスアンチパターンとでも呼ぶべきもの)は全く必要ないよ
0081デフォルトの名無しさん (ワッチョイ 9e2d-9Aak)
垢版 |
2020/02/26(水) 21:07:30.64ID:JBdLkQQ40
単一かどうかはコンテナへの突っ込み具合で違ってくるんじゃないの
シングルトンでって指定していなければ複数インスタンス化されちゃうでしょう
0083デフォルトの名無しさん (ワッチョイ 4e02-zb1h)
垢版 |
2020/02/27(木) 08:46:08.57ID:LiuiNLxS0
>>77
グローバル変数を単にフォームにおいてアクセス制御しただけで次とほぼ変わらないな
staticでいいじゃん側の話に思える

private static Form2 _form;
public static Form2 Hoge{
get{
if(_form == null || _form.IsDisposed)_form ==new Form2();
return _form;
}
}
0085デフォルトの名無しさん (アウアウウー Sa2f-A7eh)
垢版 |
2020/02/27(木) 12:49:09.42ID:ENhVujQ1a
日本人はすぐそういう党派的(どっちの側にお前はつくんだ?}で幼稚な話になるよねw

>>83
そういう話じゃないってw
>>70のコードびShowSingletonというメソッドはもちろんForm2以外のクラスに
書くことも出来るけど、それが分かりやすいですか?

こういう話だから。

シングルトンがあんまり有用じゃないとしても、
「唯一のオブジェクトを管理したり窓口になったりする役割をそのクラス自身に持たせる」
というシングルトン的なアイデアは応用できる、と言ってるんだけど、
これがそんなに難しい話かなw
0089デフォルトの名無しさん (アウアウウー Sa2f-A7eh)
垢版 |
2020/02/27(木) 22:15:47.05ID:ENhVujQ1a
>>87
日本人と欧米人の論争の仕方の違いは明らかで、
それは別に俺のオリジナルの見解でも何でもないよw

今のこの話なら、日本人のダメなところは「シングルトンパターンの利点はここで問題点はここで」
という議論が苦手なこと。
日本人は一度決めた「立場」に固執して全肯定か全否定かになりやすい。
好き嫌いを持ち込むべきでない評価に好き嫌いを持ち込みがち。
エディターとかはいいんよ別に好き嫌いで語れば。技術的な話はおかしいでしょ。

板違いだからもう止めるけどね。
0090デフォルトの名無しさん (ワッチョイ ca01-bE1b)
垢版 |
2020/02/27(木) 22:46:12.99ID:RMeeA8fN0
>>89
> 今のこの話なら、日本人のダメなところは「シングルトンパターンの利点はここで問題点はここで」
> という議論が苦手なこと。
それでどちらかに決まるなら宗教戦争なんてすぐに解決してるよw
そもそも技術的な話とか言うわりには
> それが分かりやすいですか?
なんて人によって意見が違うことを言い出すから戦争はいつまで経っても終わらないわけで…
0091デフォルトの名無しさん (ワッチョイ 03a7-efYq)
垢版 |
2020/02/27(木) 23:52:28.63ID:NGAf+NLq0
>>89
まあ、外人ならってのは幻想だな
そもそも奴らがそんなに頭が良かったのならオブジェクト指向なんて流行ってない

リーナスが言ったようにオブジェクト指向はカルトだ
誰もメリットなんて説明できない
それでも海を超えて日本へ来たのさ
0092デフォルトの名無しさん (アウアウウー Sa2f-A7eh)
垢版 |
2020/02/28(金) 00:58:28.47ID:W4dF7kHwa
>>90-91
なんか党派的主張のお手本みたいなレスで何だかなあという気持ちになるけど
言っても無駄だねたぶんw
0094デフォルトの名無しさん (ワッチョイ 4a63-ZWRU)
垢版 |
2020/02/28(金) 09:46:17.62ID:JX0D/Sej0
いつもいつも同じ流れでよく飽きないですねカスども
0095デフォルトの名無しさん (ワッチョイ 4a42-DFeu)
垢版 |
2020/02/28(金) 14:13:28.76ID:zv3KdV1x0
シングルトン的なものが必要になったら、殆どはDIのインジェクションでなんとかするけど
コレクションの要素にインジェクションなんて鬱陶しいから普通のシングルトンやStatic Class使ったりするな
0097デフォルトの名無しさん (ワッチョイ cb4f-/wOo)
垢版 |
2020/03/01(日) 05:50:05.37ID:wVHwYgLC0
これが最新ぽいな
0099デフォルトの名無しさん (ワッチョイ 679b-DFeu)
垢版 |
2020/03/02(月) 10:29:43.95ID:NX3+Q9hq0
C#というより.NET Framework全般の問題かもしれませんが・・・
ビルドした実行ファイルの拡張子を7zにして開けると
   .rsrc(フォルダ)
   .text
   .reloc
というファイルが出てきます

このうち「.text」をエディタで開けると

「C:\Users\ユーザー名\source\repos\プロジェクト名\obj\Release\実行ファイル名.pdb」

の文字列がそのまま入っておりユーザー名まで見えてしまいます

プロジェクトのプロパティなど見てみましたが該当する文字列は設定されていませんでした

この文字列が入らないようにビルドするにはどうすれば良いでしょうか?
0101デフォルトの名無しさん (ワッチョイ 4e7c-FlcA)
垢版 |
2020/03/02(月) 10:56:03.68ID:dv6bLfIQ0
プロジェクトのプロパティでデバッグ情報の出力を「なし」か「埋め込み」にする
なしの場合はデバッグが難しいから頒布する用のリリースビルドだけにした方が良い
0103デフォルトの名無しさん (ワッチョイ 679b-DFeu)
垢版 |
2020/03/02(月) 11:30:46.56ID:NX3+Q9hq0
>>101-102

ありがとうございました。
pdbファイルがなんなのか理解できました
0104デフォルトの名無しさん (ワッチョイ 9f24-xiWk)
垢版 |
2020/03/04(水) 15:33:24.81ID:WNB6X6E30
yield returnの挙動について知りたいのですが、
例えばHuman[]からある苗字のHumanインスタンスだけを列挙する場合、
yield returnで貰えば新たな配列は生成されないという理解で良いんでしょうか?(無駄なヒープの生成なども無いと)
0105デフォルトの名無しさん (ワッチョイ 4f7c-MjGO)
垢版 |
2020/03/04(水) 15:41:47.96ID:VYRn8ATr0
配列は生成されないけどIEnumerable<T>/IEnumerator<T>の実体クラスのインスタンスは作られるよ
具体的にどんなクラスになるかはildasm.exeとかで確認してみるといいよ
0106デフォルトの名無しさん (ワッチョイ ef4a-Xzyn)
垢版 |
2020/03/04(水) 20:59:26.02ID:i/lDlkx00
var a = new int[10];
for(......){
......
}

for(......){
var a = new int[10];
......
}

配列変数の場合はどちらの書き方が正しいでしょうか?
下のほうはループを繰り返す毎に配列を宣言してるので無駄だと思うのですが
0109デフォルトの名無しさん (ワッチョイ 4b35-odL1)
垢版 |
2020/03/04(水) 21:18:09.87ID:vFPRvz7l0
>>106
どっちが正しいかは何をしたいかによる
0110デフォルトの名無しさん (ワッチョイ 4b2d-hds7)
垢版 |
2020/03/04(水) 22:58:57.68ID:Mg+OXMHj0
始めたばっかの頃の自分を思い出すと、おそらく>>106がやりたいのはこれ

int[10] a;
for(......){
a = new int[10];
......
}
0112デフォルトの名無しさん (ワッチョイ 9fad-b9E5)
垢版 |
2020/03/05(木) 02:53:17.71ID:FOFXma0P0
>>106
後者はループ処理毎にaが初期化されるが
前者はループ処理毎にaは初期化されない
って違いがあるので、バグが発生しにくいのは後者で
バグは発生しやすいけど効率がいいのが前者

前のループのaを使わないなら、どちらも正しいよ
0113デフォルトの名無しさん (ワッチョイ 8b48-107Z)
垢版 |
2020/03/05(木) 09:03:52.56ID:Zalo0Xqn0
for内部で毎回一時バッファが必要ならfor内に書くべきだけど、ループ枚に配列生成は高コストなのでstackalloc使って良いと思うけどな

unsafe for ()
{
var a = stackalloc int[10]; //配列サイズが[200000]ほど以上になるとスタックオーバーフローの恐れが出てくるので注意
a[0] = 123;
}
0114デフォルトの名無しさん (ワッチョイ 1bad-Ff7g)
垢版 |
2020/03/05(木) 09:55:29.22ID:C+Zq+iEs0
>>110
それ106と全く同じ事だよ
予め配列変数を用意しておいたところで参照型である配列の変数なんてあくまでポインタに過ぎず肝心の中身はnew毎に生成されるからコスト的には全く変わらない
0115デフォルトの名無しさん (ワッチョイ 9f01-AjW4)
垢版 |
2020/03/05(木) 10:13:49.21ID:sz7+iaAj0
言語ではなくて設計のことなのですが、C#でデスクトップアプリを作っていて、canvasに描画する処理を書いてます
そこで、描画部分で状態の更新(例えばlabelで表示する値の計算)を一緒にやった方が負荷が減らせるなと思ったのですがこれは設計としていいのでしょうか?
描画部分は複雑になっていくので、そこにcanvasの描画に関係ない処理を持ってくるのはどうなのかと悩んでます
でも一連の処理で共通部分があるので出来る限り負荷を減らしたいです
canvasの描画とその他の更新でうまく分けた方がいいでしょうか
0116デフォルトの名無しさん (アウアウウー Sa0f-blPw)
垢版 |
2020/03/05(木) 10:16:15.59ID:4EDBtik+a
>>113
悪いけど、それは全く意味ないと思うよ
ループ内で配列を生成する必要があるとしたら、それを他の非同期なメソッドなどに渡していて毎回インスタンスを別にしなければならないケースだろう
stackallocだと領域が結局使い回されてしまうから、それでいいんだったら単純に最初にnewした配列をループ内で毎回クリアして使えばよい
0117デフォルトの名無しさん (ドコグロ MM0f-blPw)
垢版 |
2020/03/05(木) 10:28:10.79ID:9nI/lMlHM
>>115
描画処理は今の状態のスナップショットを画面に反映させるだけなんだろ?
そんなもん状態の更新処理と何をどう共有するんだよ
分けるかどうかは別にして、そんな頭がごっちゃになった状態で書かれたコードなんて俺は読みたくないな
0118デフォルトの名無しさん (ワッチョイ 9f24-CBSz)
垢版 |
2020/03/05(木) 10:30:44.90ID:e30M4A2z0
>>116
ループ内で生成しないやり方と迷ってるってことはret時にもループ内でも他に渡す盤面は無いってことじゃないかな
なので最高のやり方はSpan<int> a = stackalloc int[10]として最初に確保をしてループ毎にa.Clear()
>>113のやり方も悪くは無いけど使いまわせるのに毎回stackallocするのは無駄
0119デフォルトの名無しさん (ワッチョイ 9f01-AjW4)
垢版 |
2020/03/05(木) 11:02:10.43ID:sz7+iaAj0
>>117
すみません誤解を招く書き方でした
状態の更新ではなくviewの更新です
viewで表示する値を計算するのに一連の処理が必要ということです
改めて考えてみたら元のデータは頻繁に変わるものではないのでメモ化で対処できそうです
0120デフォルトの名無しさん (ワッチョイ cb01-xiWk)
垢版 |
2020/03/05(木) 15:17:30.80ID:X7H8oXB10
自分で使う用のWindows用WinFormsくらいしか作らない俺もSpan利用したいんだけど、そろそろ.NetCore3.1インスコしてええの?
CoreのWinFormsは不完全みたいな事どっかで聞いたからもうかれこれ1年以上.Net Framework4.7.2しか使ってないんだけど
0124デフォルトの名無しさん (ワッチョイ 4f7c-kMfZ)
垢版 |
2020/03/10(火) 13:54:33.08ID:Xb+4Rppb0
Hoge[] h = new Hoge[]{...};
ArraySegment<Hoge> slice_of_h = new ArraySegment<Hoge>(h, a, b);
Hoge[] new_instance = slice_of_h.ToArray();
0125デフォルトの名無しさん (ラクッペペ MMe6-0jaE)
垢版 |
2020/03/11(水) 20:14:38.79ID:Atur+UVNM
FormアプリケーションのGUIをそのままWebサイトにできますか?
0126デフォルトの名無しさん (ワッチョイ 0263-Xa2H)
垢版 |
2020/03/11(水) 20:15:50.74ID:JtvZFGdC0
無理
0131デフォルトの名無しさん (アウアウウー Sac5-Syvm)
垢版 |
2020/03/12(木) 15:00:48.26ID:jMpYX7Pla
>>130
下の方は誤解を招く書き方(というか本人が理解してなさそう)だね
.NET5は.NET CoreとXamarinの新バージョンを含むが、.NET Frameworkは含まない
.NET Frameworkは4.xが最後のバージョンとなり、(Xamarinを除けば).NET Coreへ一本化される
0134デフォルトの名無しさん (ワッチョイ 0135-0jaE)
垢版 |
2020/03/13(金) 00:04:41.45ID:1UhKFURs0
テクノロジーを基盤してるって書いてるだけじゃん
ライブラリがおかしい
0136デフォルトの名無しさん (アウアウウー Sac5-cOBK)
垢版 |
2020/03/13(金) 12:12:59.24ID:1Ll5zbJna
毎度のことだけど用語の定義のあいまいさからくる混乱だろうね

>>132の引用部分を書いた人は「NET FrameworkをVS2002とかの時代の意味で使ってるんでしょ。
当時は仮想OSみたいに言われてた

その定義だと.NET Coreも.NET Frameworkになっちゃうので(以下略
0137デフォルトの名無しさん (ワッチョイ 61dd-gN7l)
垢版 |
2020/03/14(土) 03:14:07.89ID:+KBSM6L30
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とかしたくないんだよな...

なんでこういう挙動になるか、ご存じの方いますか。
0139デフォルトの名無しさん (ワッチョイ 7e02-JJJ8)
垢版 |
2020/03/14(土) 03:55:38.88ID:eoDNI2O30
第二引数は探索の開始位置を指定するのであって検索範囲をどうこうするためのもんじゃないってことかな?
でもその理屈だと二つ目がfalseである説明にならんし流し読みだから解釈間違ってるかもしれないわ
0141デフォルトの名無しさん (アウアウウー Sac5-M7Q/)
垢版 |
2020/03/14(土) 09:39:43.32ID:S+o/zRAGa
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を行区切りとした行頭についてのみマッチするんだろう
0142137 (ワッチョイ 61dd-gN7l)
垢版 |
2020/03/14(土) 11:29:21.74ID:+KBSM6L30
>>138-141
ありがとう!
俺だけではそれらの情報を見つけられなかったわ。

いったん \G を使用することで何とかなりました。
というか \G の仕様(影響範囲)もよくわからん。
最終のマッチってRegexのインスタンスに保存されるのかな?
そうだと思うけど、今一つ確証が持てない。

あと、 \A が正しいんじゃないか、って思いましたが、\Aは「文字列の先頭」でしかないんだね。
Singlelineの場合は^と同じみたい。
0143デフォルトの名無しさん (ワッチョイ c201-ThK6)
垢版 |
2020/03/17(火) 10:51:26.76ID:phFjovqc0
プログラムではなくライセンスについての質問なのですが、NAudioというライブラリを使いたくてプロジェクトに導入したのですがMs-PLライセンスとなっていて、この場合著作権表示等は具体的にどう表示すればいいのでしょうか。
著作権表示自体がいまいち分かりません。ライセンスの文書(LICENSE.txt等)とは別なのでしょうか。
調べているのですが具体的な表記方法が書かれている記事が無く分かりません。
ご教示お願いします。
0144デフォルトの名無しさん (ワッチョイ 13b9-hdmr)
垢版 |
2020/03/21(土) 13:43:45.29ID:/FH0o/RH0
相談させてください。
以下のような 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);
}

ご意見をお聞かせいただけると幸いです。よろしくお願いいたします。
0146デフォルトの名無しさん (アウアウウー Sa5d-NT4g)
垢版 |
2020/03/21(土) 19:30:58.03ID:zN2aQcNta
最近のIDEは賢いから定義されてるけど使用されないことが明らかなプロパティやメソッドが見つかったら警告が出るようになってる
>>144のは文法等のお勉強でてきとうなソースを書いてるんだと思うけど、MyClass2なら
MyPropertyをpublicなプロパティにするか、MyPropertyを参照するような処理をちゃんと書けば警告解消するはず
ToString()あたりをオーバーライドして override string ToString() => MyProperty; とか書いてもいいかもね
0147デフォルトの名無しさん (ワッチョイ 13b9-hdmr)
垢版 |
2020/03/21(土) 20:37:06.12ID:/FH0o/RH0
>>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;
}
0148デフォルトの名無しさん (ワッチョイ 13b9-hdmr)
垢版 |
2020/03/21(土) 20:37:42.93ID:/FH0o/RH0
>>146
レスありがとうございます。
おっしゃるとおりなのですが、MyProperty += x; で
MyProperty の get アクセサーが参照されていることに
ならないため困ってしまっています。
C# の文法的に、自動実装プロパティでなければ

int _MyProperty = 0;
int MyProperty { set => _MyProperty; }

のような書き方も許されているようなのですが、
MyClasss2 の MyProperty の定義をこのように書き換えると、

MyProperty += x;

のところでエラーが出てしまうのです。
0150デフォルトの名無しさん (アウアウウー Sa5d-NT4g)
垢版 |
2020/03/21(土) 21:05:47.28ID:zN2aQcNta
いやだからIDEからは「結局MyPropertyってインクリメントで更新はしてるけどどこからも参照されてないんでしょ、無駄なんじゃない?」と怒られてるわけで
他のC#ソースなりXAMLなりでMyPropertyが参照されてればそのメッセージは出ないはずだけど
例示されてるソースであればMyPropertyだけでなくインクリメントする処理も意味のない無駄な処理だから削ればいいし
GUI側etcのソースがまだ書けてないのであれば中途半端な書きかけソースで警告が出るのは当たり前のお話

というかそもそもでいえば、VisualStudioの設定がデフォルトならそのメッセージは
「コンパイルエラー」でも「警告」でもないただの注意喚起なメッセージでしかないから開発にも実行にも一切支障がないので
とりあえずほっとけばいいと思うんだけど
0152デフォルトの名無しさん (スッップ Sd33-Hfmd)
垢版 |
2020/03/22(日) 15:10:18.53ID:aFZi4Cdad
>>147
MyPropatyをSetメソッドにして、インクリメント_MyPropaty+xを渡せばいいんじゃないの?

これでいいんでしょうか?って内容通りだけど単に値を入れるだけならフィールド直接やればって感じだけど追加作業あるならメソッドでやるのは普通だと思う
0153デフォルトの名無しさん (ワッチョイ 13ad-hdmr)
垢版 |
2020/03/24(火) 22:53:25.92ID:7FKkbPj60
読んでる入門書の練習問題にアクセサのGetNameメソッドで八文字以下の文字列が渡された場合だけname変数に代入するプログラムを書きなさい
というのがあるんですが、どうやって書けばいいのでしょうか?文字数を判定するプログラムは習ってないので困ってます
0158デフォルトの名無しさん (ワッチョイ 29f1-dbH2)
垢版 |
2020/03/24(火) 23:51:16.61ID:hJYqJTPr0
猫に分かるわけがない、こんな難しいものを。
「ハゲでもわかる」だろ、どう考えても。
0160デフォルトの名無しさん (ワッチョイ b1f1-Go5d)
垢版 |
2020/03/25(水) 08:43:43.21ID:nn3rUaIL0
能力の劣る者でもできる
このハゲー、と言われるような者でも
0164デフォルトの名無しさん (ワッチョイ 764a-1K1t)
垢版 |
2020/03/27(金) 23:27:00.17ID:MpMbbGem0
プロポーショナル文字の場合に、画面上の文字の表示位置はどうやって求めるんでしょうか?
1文字ごとに(x,y)座標を計算して配列変数に記憶しておく、
文字を削除、挿入などして位置がずれたときにはすべて計算し直す
というような方法しか思いつきません
0167デフォルトの名無しさん (ワッチョイ 0935-lv27)
垢版 |
2020/03/28(土) 01:43:01.14ID:ngUeRIaE0
削除・挿入した文字列のサイズを全体から足し引きする
0169デフォルトの名無しさん (エムゾネ FFb2-nBi6)
垢版 |
2020/03/28(土) 10:27:24.65ID:juOTiA3TF
オリンピックじゃないけどカーリング
0177デフォルトの名無しさん (ワッチョイ 92ad-Lzc3)
垢版 |
2020/03/30(月) 08:04:27.51ID:aCqibAU/0
図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だ
0179デフォルトの名無しさん (ワッチョイ 92ad-Lzc3)
垢版 |
2020/03/30(月) 08:22:46.27ID:aCqibAU/0
あ、C#には累乗演算子ないか
2^3は「2の3乗」の意味です
Math.Pow(2, 3);
0185デフォルトの名無しさん (アウウィフ FFcd-MKsy)
垢版 |
2020/03/31(火) 15:02:22.73ID:uDSFrRRVF
i x i
0192デフォルトの名無しさん (ワイーワ2 FF93-8H9x)
垢版 |
2020/04/01(水) 11:03:28.91ID:5VJq6KKKF
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);
いまいちだな
0195デフォルトの名無しさん (ワッチョイ 851d-6nIr)
垢版 |
2020/04/01(水) 18:49:00.02ID:60SS71wY0
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
0196デフォルトの名無しさん (ワイーワ2 FF93-Wy2p)
垢版 |
2020/04/01(水) 18:53:16.96ID:86v82W0VF
System.Drawing Point Distance なし
System.Windows Point Distance なし
Xamarin.Forms Point Distance あり!!!
0197デフォルトの名無しさん (アウアウウー Sae9-1s42)
垢版 |
2020/04/01(水) 19:50:46.55ID:ULM1+KSpa
描画面上の距離が必要になるケースってあんまりないような気はするね。

直交座標上の点を表すstructがあってそっちに付いてるなら分からんでもない。
.NETのライブラリって数学の名前空間がないんだよな。
MathってSystem直下のstaticクラスになってて、今となっては疑問を感じる設計だよね
0200デフォルトの名無しさん (ワッチョイ 1bda-33J8)
垢版 |
2020/04/02(木) 06:04:40.26ID:OVS0fpTc0
System.Numericsってなんだと思ってググったら、存在知らずにだいぶ前にこれと似たようなの(しかも劣化コピー)自作したぞ。
今ひどい黒歴史が出来たわ・・・・・
0201193 (ワッチョイ 2361-reLO)
垢版 |
2020/04/02(木) 06:58:15.83ID:JxZO1Jli0
>>196
あるのかぁぁぁぁ!!!!!!
Xamarinてことはスマホアプリか。UI関係で使うんかな?
0204デフォルトの名無しさん (エムゾネ FF43-8H9x)
垢版 |
2020/04/03(金) 14:53:19.91ID:VVxcL9MvF
ちょまどさんがきっとなんとかしてくれる
0205デフォルトの名無しさん (ワッチョイ 4d61-sbZV)
垢版 |
2020/04/03(金) 17:02:10.10ID:UoNKEVCn0
WinForms で、MDI の場合、子フォームのメニューは親フォームにマージされるようですが、この動作を変更して、マージせずに子フォームのメニューバーの位置に直接メニューを表示することは可能でしょうか?
可能な場合、どうすればできますか?
0208デフォルトの名無しさん (エムゾネ FF43-8H9x)
垢版 |
2020/04/03(金) 17:44:55.55ID:VVxcL9MvF
>>205
SDI
0213デフォルトの名無しさん (アウアウウー Sae9-1s42)
垢版 |
2020/04/03(金) 18:30:10.60ID:ytDWP9uSa
>>209
親のMenuStripのAllowMerge = falseだね
デフォでマージされないはずだと思ってたけど勘違いだった
0214デフォルトの名無しさん (ワッチョイ 4d61-sbZV)
垢版 |
2020/04/03(金) 18:40:10.41ID:UoNKEVCn0
>>213
親Formの AllowMerge を falseにするということは、どんなMDIに対しても
影響が及ぼされてしまうんですね。
一部のMDI Chileだけは個別にメニュー付きで、他のMDI Childは、親のメニューにMerge、という具合には出来ないんですか。
0215デフォルトの名無しさん (エムゾネ FF43-8H9x)
垢版 |
2020/04/03(金) 18:46:29.17ID:VVxcL9MvF
そこまでこだわるなら floating menu 造って子ウィンドウに載せろ
0216デフォルトの名無しさん (アウアウウー Sae9-1s42)
垢版 |
2020/04/03(金) 18:51:31.33ID:ytDWP9uSa
>>214
そういうヘンテコなUIはどうかと思うけど、
マージしたくない子のMenuStripのAllowMerge = falseでいけるみたい

っていうかこれぐらい自分で試そうよw
0220デフォルトの名無しさん (ワッチョイ 4d61-sbZV)
垢版 |
2020/04/04(土) 17:22:20.79ID:9nDXuupl0
VS2019のメニューを見ていると、MFCと同様に、無効な項目は
グレイ表示されています。
MFCの場合は、Merge方式ではない代わりに、ActiveなChildWndが
ハンドラを実装していない場合には自動的にグレイ表示になっていたのですが、
WinFormsの場合は、どうやれば良いのでしょうか?
0221デフォルトの名無しさん (アウアウウー Sae9-1s42)
垢版 |
2020/04/04(土) 19:04:00.44ID:UFbKis4ca
>>220
1年前にも似たような質問があった気が。
MFCは知らないのであれだけど、多分MFCに近いやり方は用意されてないかと。

結果的に同じようなUIをなるべく簡単に実現するには、1年前にも書いたけど
MDI子に共通のメニューを持つFormをまず作って、
個々のMDI子はそれを継承するのがいいんじゃないかなあと
0223デフォルトの名無しさん (アウアウウー Sae9-1s42)
垢版 |
2020/04/04(土) 19:59:31.83ID:UFbKis4ca
そうそう。
継承後のフォームでもデザイナでコントロールのプロパティーの値を変更というか上書きできたはず
ついでに、MenuStripのVisible = falseにしておけば親にマージされている時以外メニューは表示されないみたい
0224デフォルトの名無しさん (ワッチョイ e307-Gpp1)
垢版 |
2020/04/06(月) 03:12:51.01ID:O7BKGhOT0
ビル・ゲイツが私財でコロナのワクチン作る。
c# プログラマに一番最初にワクチンを供給してくれるとおもう。

安全性の確認できないワクチンや薬品をc#プログラマにぶち込めば開発効率が上がる。

人体実験を断ったら、msdn、マイクロソフトid を停止させるとかして、Windows 利用不可にすればいい。
c#コンピューターオタクは断ると当面お金を稼げなくなるから喜んで実験に参加してもらえるはず。

まと、コンピューターオタクには人権はないので、実験により貴重な人命が損なわれることもない。
0229デフォルトの名無しさん (アウウィフ FFe9-8H9x)
垢版 |
2020/04/06(月) 10:17:13.45ID:TxMJ3ToxF
>>224
先生そういう宗教的な分野はMacとかSwiftとかの方が適していると思います
0230デフォルトの名無しさん (ワッチョイ e307-Gpp1)
垢版 |
2020/04/06(月) 11:37:10.89ID:O7BKGhOT0
>>225
c# プログラマにベータ版ワクチンをインストールしてもらいデバッグするんですよ。
バグのないワクチンとソフトウェアはありません。

Macユーザーは完成後のワクチンは提供対象外。

だから、MacBook とかに Windows をインストールしてる人は、デバッグと実験の対象になりますが、完成したワクチンの提供は対象外となります。
0231デフォルトの名無しさん (ワッチョイ b501-bVUD)
垢版 |
2020/04/07(火) 17:59:28.45ID:Fz3MtvZy0
visualstudioで
フォームアプリに追加したクラスライブラリにclass1.csとclass2,csがあるんですけど
class2の方にコントロールを継承してもツールボックスに表示されないのはなぜでしょうか
class1だと表示されました
0232デフォルトの名無しさん (ワッチョイ 55b0-CuPJ)
垢版 |
2020/04/07(火) 18:09:18.22ID:haJ3Gg0r0
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となっており
次の行でエラーが発生しています。

どなかたお助けください。よろしくお願いいたします。
0235デフォルトの名無しさん (アウウィフ FFe9-8H9x)
垢版 |
2020/04/07(火) 18:42:39.03ID:G5F9VLMpF
>>232
var driveService = new DriveService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "MyApplicationName",
});

使ってない?
0236デフォルトの名無しさん (アウウィフ FFe9-8H9x)
垢版 |
2020/04/07(火) 18:55:57.94ID:G5F9VLMpF
あとは
var fileMetadata = new Google.Apis.Drive.v3.Data.File(){
Name="test.png",MimeType="image/png",};
にしてみるとか
他にはstreamがbinaryになってるかどうかとか

https://gist.github.com/LindaLawton/ead22e44bf88c3afa60753de0445eddf
この人もnullって言ってるな
0238デフォルトの名無しさん (アウウィフ FFe9-8H9x)
垢版 |
2020/04/07(火) 19:00:30.98ID:G5F9VLMpF
っていうか
DriveService.Scope.DriveReadonly
じゃだめな気がする
0243デフォルトの名無しさん (ワッチョイ 06e3-AglQ)
垢版 |
2020/04/08(水) 22:55:22.95ID:t+YdRhnM0
ググればToDataReaderの拡張メソッドヒットするからそれ参考に実装すればいいんじゃね
俺社環でライブラリの拡張メソッド禁止されているから、IDataReaderで作ったけど
0244デフォルトの名無しさん (ワッチョイ df01-aZ/i)
垢版 |
2020/04/09(木) 07:09:54.80ID:9rfBAHbp0
>>243
知らない知識なので参考にさせて頂きます
しかしバルクコピーのメソッドがdatatableという古い技術で実装させる時点で、そもそもバルクコピー自体が古い技術で別の最新技術があるのかなと疑っております
色々な角度で調べてみるつもりです
0246デフォルトの名無しさん (ワッチョイ 431d-slfm)
垢版 |
2020/04/09(木) 08:44:51.87ID:lA8JDzIo0
win10において
・ネットワークとインターネット設定→プロキシのセットアップスクリプトを使う設定のON/OFF切り替え
・ネットワーク接続のインターネットプロトコルバージョン4のプロパティの
IPアドレスを自動的に取得すると、次のIPアドレスを使うの切り替えと入力
DNSサーバー・・・と次のDNSサーバーのアドレスを使うの切り替えと入力
これをC#アプリで実現できますか?どのようなクラスを使えばいいでしょうか?
0252デフォルトの名無しさん (ワイーワ2 FFfa-zfCe)
垢版 |
2020/04/09(木) 12:41:32.88ID:kpg/tOgGF
>>248
ほんそれ +1
0253デフォルトの名無しさん (ワッチョイ 6ff1-Xgk8)
垢版 |
2020/04/09(木) 12:48:40.23ID:XKMcLRnY0
x ほんそれ
o ほんとそれ

正しい日本語で
0255デフォルトの名無しさん (ワッチョイ d701-jz5X)
垢版 |
2020/04/09(木) 21:32:00.67ID:ezz+hw670
ハンソロ
0260245 (オッペケ Sr5f-q7V1)
垢版 |
2020/04/10(金) 09:43:04.90ID:Rte1PrgOr
あーそういや気付けばdapperばっか使ってたわ
あいえにゅめにゃんにゃんが便利やしなあ
0262デフォルトの名無しさん (ワイーワ2 FFfa-zfCe)
垢版 |
2020/04/10(金) 11:00:45.18ID:nz1tlAhXF
DataTableでうわぁっってなるひとはJSONでくぇぇっってならんのまじで?
0269デフォルトの名無しさん (ワッチョイ 6777-AglQ)
垢版 |
2020/04/10(金) 15:28:01.76ID:SuSUfgJ80
Chartコントロールで横のスクロールバーを表示させる方法を教えてください。
サンプルプログラムは↓のをほぼそのまま使いました。( i < 5のところを i < 500に変えて数だけ増やしています)
チャートは普通に表示されるのですが、いろいろ探してもスクロールバーの出し方が全然わかりません。

https://qiita.com/Aki_mintproject/items/02e98173eb8eee74fc5b
0275デフォルトの名無しさん (ワッチョイ 8eda-JB1h)
垢版 |
2020/04/11(土) 02:58:17.93ID:EYr99YyX0
よぉ〜しよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよし
0277デフォルトの名無しさん (ワッチョイ c62d-kdbN)
垢版 |
2020/04/12(日) 16:27:59.95ID:WBJoN6ah0
if(条件A && !条件B){}
みたいなことをしたいのですが、&&と!をまとめてきれいに書く方法はありますか?
0282デフォルトの名無しさん (ワッチョイ a201-vZv9)
垢版 |
2020/04/12(日) 19:13:16.89ID:tx1YNXXn0
if (foo.IsEnabled && !bar.IsEnabled) を
if (foo.IsEnabled && bar.IsDisabled) にすることはある

単語の頭につけるエクスクラメーションマークは
見落としやすいから可読性がやや低い

>>278のパターンで変数にすることはあんまりないけど関数化するのもよくやる
0284デフォルトの名無しさん (ワッチョイ c62d-kdbN)
垢版 |
2020/04/12(日) 19:43:51.07ID:WBJoN6ah0
一発で書けるのかなと、すごく疑問に思ってたよ
ありがとう!
0285デフォルトの名無しさん (アウアウウー Sabb-KL7n)
垢版 |
2020/04/12(日) 21:05:32.57ID:0dL6T2+Wa
一発で書けた
if (b ? false : a) {...}

一発で書けた
if (!(!a || b)) {...}

一発で書けた
Func<bool, bool, bool> ippatu = (x, y) => x && !y;
if (ippatu(a, b)) {...}
0289デフォルトの名無しさん (ワッチョイ cb5f-zfCe)
垢版 |
2020/04/13(月) 10:34:31.41ID:xWnIwwwl0
>>286
カルノー図描いて観ろ
0292デフォルトの名無しさん (ワッチョイ 6207-O/Sq)
垢版 |
2020/04/13(月) 17:03:53.08ID:wlUJ1QGb0
SSH.net使った事ある人います?
フォワードポイント設定後、Startしてプログラムは通ってるんですけど、なぜかポートが開かないので困ってます
RloginというフリーのSShソフト使うと同じポートが開くので、SSH.net側かVS側が原因と考えてます
ネットの先人たちの知恵を拝見して同じようにしてるんですけど、なぜか上手くいきません

開発環境
VS2017
Nugetより最新のSSH.netを入れてます

netstatコマンドでポートの確認したら、192.168.〜の所が開かず、[::]の所が開いてるようです
これはなんなんでしょう?
0295デフォルトの名無しさん (ワッチョイ 6207-O/Sq)
垢版 |
2020/04/13(月) 17:41:05.66ID:wlUJ1QGb0
>>293
>>294
返信ありがとうございます!
>>293さんのおっしゃる通りv6が開いてました
フリーソフトは両方開けてくれてたので、そこで勘違いしてました
こんな簡単な事でスレ汚してすいませんでした
ありがとうございました
0296デフォルトの名無しさん (ワッチョイ 36eb-AglQ)
垢版 |
2020/04/13(月) 19:23:38.52ID:o+L/gyE50
拡張メソッドがあるのに、拡張プロパティなどが無いのは何故でしょう?

多くの日本語解説サイトで DirectoryInfoではなくDirectoryを、EnumerateFilesでなくGetFilesを使ってるのは何故でしょう?
 (対応していないバージョンのC#を利用する人も、その方が高速・妥当なコードも稀だと思うのですが…)
0300デフォルトの名無しさん (ワッチョイ 36eb-AglQ)
垢版 |
2020/04/13(月) 20:26:56.25ID:o+L/gyE50
>>297,298
なるほど 確かにC#3.0に並んでるものと比べたら、優先度低くても全然不思議じゃないですね
将来的な実装を心待ちにしておきます ありがとう!

開発チームの内情というか現実的な部分の説明が面白かったw

>>299
言われてみれば、強力な反面 把握し辛い奇想天外なクソコードも書きやすくなりそうですね
0304デフォルトの名無しさん (ワッチョイ 6233-AglQ)
垢版 |
2020/04/13(月) 23:30:22.44ID:IBaPMQxT0
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

なぜデッドロックしなかったのか教えてください
0306304 (ワッチョイ 6233-AglQ)
垢版 |
2020/04/14(火) 00:04:17.51ID:wwnZT3mo0
WPFで適当なボタン作ってクリックイベント内で同じようなことをしたらフリーズしました
GUIじゃなければ起きない、とかでしょうか
CUIだとフリーズせず実行できてしまいます
0307デフォルトの名無しさん (ワッチョイ 8eda-KRXG)
垢版 |
2020/04/14(火) 02:23:36.56ID:hp+6QaJX0
・UIスレッドは1つしかない
・GUIアプリの場合、await後は生成元のスレッドに戻ろうとする
・ところがUIスレッドはawaitしている
・お互い待ち合うことでデッドロック発生

CUIの場合はawait後に元のスレッドに戻らないのでデッドロックしない。
GUIでもAsync1、Async2のメソッド内で
await Task.Delay(100).ConfigureAwait(false);
とすればデッドロックしないが、Async1やAsync2でDelay後にUI部品触ると(ボタンのキャプション変えるとか)落ちる
0308304 (ワッチョイ 6233-AglQ)
垢版 |
2020/04/14(火) 09:01:56.56ID:wwnZT3mo0
なんとなくわかった気がしました

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の動作が変わるから
デッドロックが起きたり起きなかったりする、という感じがしました
0309デフォルトの名無しさん (ワッチョイ 7b0c-AglQ)
垢版 |
2020/04/14(火) 11:04:24.75ID:27IsOs6K0
WinformsやWPFは各々フレームワークのコンポーネントの初回呼び出しで
それぞれ専用の同期コンテキストを自動で現在のスレッドに設定して
await 式から自動生成されたコードで現在の同期コンテキストのSendやPostを呼び出してるって割と単純な話だわよ
0310デフォルトの名無しさん (ワッチョイ 7b59-vo9w)
垢版 |
2020/04/14(火) 21:47:37.07ID:kOEIvzYK0
質問失礼致します。
ttps://xr-hub.com/archives/20326
の2番目のサンプルコード「Person.cs」に

public Person(string name, Job job)

という行があるのですが、これは関数ですか?
publicの後の型やvoidを省略した時、どういう扱いになっているのでしょうか?
(暗黙的にvoidなど)

初歩的すぎる質問ですが知恵をお借し頂ければと思います。
よろしくお願い致します。
0319デフォルトの名無しさん (ワッチョイ 7feb-Ho7r)
垢版 |
2020/04/15(水) 06:29:23.91ID:ElrUDxqt0
初心者で妥当な用語もよく分からないのですが、

Sytem.IO.File全体を Sytem.IO.FileInfoで上書きしたり
Sytem.IO.File全体を FileUtilsにリネームして利用ってできるでしょうか

多分歴史的経緯とかなんでしょうが、名前も機能も違和感ある・・・あるよね?
0327デフォルトの名無しさん (アウアウウー Sa1b-V/21)
垢版 |
2020/04/15(水) 12:23:21.76ID:4U/dMrxba
>>319
あなたの違和感をなくすために他人に違和感を与えるコードを書いてはダメでしょうw
そういう尾崎豊的な「世の中間違ってる!」は義務教育で卒業しておけよw

インフラはみんなが慣れ親しんで知識を共有していることに意味があるんだよw
変なエイリアスを使うことはあなたの「俺流」を理解する手間を読む人に押し付けることになる。
それは1年後の自分自身かもしれないよw
0330デフォルトの名無しさん (ワッチョイ 7feb-Ho7r)
垢版 |
2020/04/16(木) 00:47:09.81ID:97EKYXOu0
まさにそういう話で、(大多数が慣れ親しんだ知識である)自然言語で full path of a file だから

(FileInfo) hoge.FullName より
(File) file.FullPath の方が読みやすく、知識なく利用しやすくない? と思ったんだ

自分が知らないだけでFileInfoやFullNameの方が妥当な理由あるのかな
0331デフォルトの名無しさん (アウアウウー Sa1b-7wDT)
垢版 |
2020/04/16(木) 00:49:55.71ID:PmElPVF7a
質問です。
visual studio2013 のWEBフォーム(.aspx)を使用しています。
以下のようなフォームを作りたいです。 どうやってつくったらよいでしょうか?
  ▼コンビニ  ←選択すると▼マークになり、折り畳みのチェックボックスリストが出る
    ■セブンイレブン  ←選択するとレ点でなく、□を塗りつぶす
    □ローソン
    ■ファミリーマート
  △ショッピングモール ←選択しないときは△マークでリストは折りたたまれている
  △スーパー

よろしくお願いいたします。
0332デフォルトの名無しさん (ワッチョイ d7ac-DNPS)
垢版 |
2020/04/16(木) 00:52:31.21ID:5emHbHZx0
チーム内でそれを浸透させる実力があるならいいんじゃね
俺はデフォルト推奨派なので、それだけの理由なら無意味な改変に見えるので
、それは賛成しないがな
「俺が見易い」は「皆が見易い」ではない
0335デフォルトの名無しさん (ワッチョイ d763-oiAQ)
垢版 |
2020/04/16(木) 01:31:46.69ID:kjXrQDZb0
windowsならpathってだけで他システムでもpathかどうか?
組み込み系OSだったらディレクトリ構造持ってないようなやつあったりしないかね?全然しらんけど
つうかその程度なら332と同じく公式に準拠する
IDEがヘルプ付きで候補出してくれるんだし、リファレンスもあるんだから困るほどのことじゃない
あくまでもプログラムであって自然言語じゃない
0337デフォルトの名無しさん (ワッチョイ 1701-wIxw)
垢版 |
2020/04/16(木) 07:33:52.84ID:9ICqslwr0
共有フォルダに置いてる実行ファイルで、一人が起動している時に別の人が起動したら処理中ですとお断りメッセージ出したいのですが、どういう方法で実現できるでしょうか?
DBでフラグ監理しようかとも思っているのですが、世間様はどうしているのかなと思い
0339デフォルトの名無しさん (ワッチョイ d733-YvxL)
垢版 |
2020/04/16(木) 08:37:52.82ID:vjXf34hg0
ロックファイル的なものを起動時に作成・チェックさせるとかかねぇ?
異常終了したりしてロックファイルが残った時が面倒だけど
そもそも共有フォルダに実行ファイルを置いて、それを起動するって運用が微妙な気がするけど
0341デフォルトの名無しさん (ワッチョイ d790-eJAq)
垢版 |
2020/04/16(木) 10:45:00.68ID:+RUJOV4w0
Unix環境とかならファイルオープン時に共有モード指定できないから、ロックファイルを「作成」できるかで排他制御するけど、
Windows環境なら共有モード指定できるから、「排他モードでオープン」できるかで排他制御できないの?
そうすれば、ロックの解放は単にファイルハンドルを閉じるだけでロックファイルを削除する必要はない。

で、異常終了してプロセスが終了した場合はOSがプロセスによって開かれてたファイルハンドルをクローズしてくれるので、
自動的にロックも解放されるってことにはならないの??
0347デフォルトの名無しさん (ワッチョイ d790-eJAq)
垢版 |
2020/04/16(木) 11:51:08.70ID:+RUJOV4w0
>>346
それは知らない。

すべては要件次第。あくまで全部Windowsで揃えられる場合の一番簡単な実装を示しただけ。

安いNASでダメだったら、君のいうロックファイルのやり方でやればいい。ただし、君の方法もひょっとしたら安いNASで「ファイルの存在確認とファイルなければ作成」をアトミックにやってくれないSMBの実装があって使えない可能性もあるので。
0349デフォルトの名無しさん (アウアウウー Sa1b-V/21)
垢版 |
2020/04/16(木) 12:11:00.19ID:qm5c5Rqxa
>>337
微妙に要件と違うけど、昔のアドビのアプリは同一ネットワーク内のPCでは
同じプロダクトキーでアクティベートされたソフトは同時に起動できなかった

あれと同じ仕組みを使うことは可能じゃないか
具体的にどういう仕組みか知らんけどw
0351337 (ワッチョイ 1701-wIxw)
垢版 |
2020/04/16(木) 18:51:55.07ID:9ICqslwr0
DBにログインIDと開始時刻を記録して処理が成功したら記録削除、失敗してたら20分経過で無効情報で良いかと思ってます
処理が20分超えたらアウトというイケてない部分をどうしようかとも思ってます
だったらファイル管理でも良いかなと思ってますが
0352デフォルトの名無しさん (ワッチョイ 57ad-7Qxr)
垢版 |
2020/04/16(木) 19:13:42.88ID:jOE4Vo+O0
DBに処理対象を一意な文字列にして、ユーザIDとIPアドレスをもってロックを確保しに行ってるな。
弾かれた側に「誰々がどこでロックしてるから諦めるか直談判しにいけ」ってメッセージにしてる。
ロックが外れる時間は2分にしてるけど、ロック掛けてる側が、30秒ごとに延長するように更新してる。
トランザクションは増えるけど、強制終了してロックが残ったのを外す方が手間。
20分待ってくれる方が少ないと思うぞ。
1000人ぐらいが同時に使ってるが、それほど負荷は無い。ジャーナルの残し方だけ気にした方がいいぐらいか。
0353デフォルトの名無しさん (ワッチョイ 9f01-7Des)
垢版 |
2020/04/16(木) 22:10:16.88ID:phPWx1q30
>>351
タイムアウトを含めて失敗したら即リソースを解放すればいいだけでは?

あと排他制御が必要なリソースの状態を管理するテーブルと
そのリソースを誰が使ってるかみたいな情報を管理するテーブルは別にしたほうがいいよ
0354337 (ワッチョイ 1701-wIxw)
垢版 |
2020/04/17(金) 07:33:58.48ID:sST11acE0
>>353
処理失敗とかイベント取れる所なら良いのですがパソコンがネットワークからいきなり外れた時とかどうしようかなと
0355デフォルトの名無しさん (ワッチョイ 9f01-7Des)
垢版 |
2020/04/17(金) 15:28:13.52ID:xgpGiYXu0
>>354
共有フォルダに実行ファイルを置くやり方だから
クライアント側でしかタイムアウト検知できないって話なのか

そうすると>>352が書いてるような方式になるけど
サーバー側で実行するやり方なら必要のない複雑性を抱える事になるから
テストや運用時の手間を考えるとアーキテクチャ見直したほうが早い気がする
0356デフォルトの名無しさん (ワッチョイ d777-Ho7r)
垢版 |
2020/04/17(金) 23:54:48.06ID:66fHRI6x0
chartのX軸のスクロールバーを動かしたときのイベントハンドラ的なものってありますか?
具体的には、縦軸(Y軸)の範囲を表示されている範囲内の最大値と最小値に逐次変更したいです。
0358デフォルトの名無しさん (アウアウウー Sa1b-7wDT)
垢版 |
2020/04/18(土) 23:09:11.85ID:fgVpQ9I4a
>>331
この問題どなたか教えていただけないでしょうか?
とくにレ点じゃないチェックボックスを作成したいです
0362デフォルトの名無しさん (ワッチョイ 9f8a-ycCE)
垢版 |
2020/04/19(日) 18:32:01.51ID:a5Bxo0wQ0
今時WebBrowserコントロールは古いんですね
とりあえず、これは勉強の為のなので、WebBrowserで大丈夫です。
上記コードの this を webBrowser1 に置換すれば問題なく動きますが、thisのまま使う場合はどのようなコードになるのでしょうか?
0363デフォルトの名無しさん (アウアウウー Sa1b-V/21)
垢版 |
2020/04/19(日) 19:46:35.97ID:E7TwXw1va
ちょっと何言ってるのか
0364デフォルトの名無しさん (アウアウウー Sa1b-LzhE)
垢版 |
2020/04/19(日) 19:56:24.71ID:3Oe7CVmea
>>362
リンク先のソースのメソッドは、おそらくはFormではなくWebBrowserを継承したコントロールに書くメソッド
WinForms標準のコントロール自体に機能追加することで、あちこちのFormでWebBrowserを使うつどそういうソースを書かなくて済むようにしてる
初学者でカスタムコントロールの作りかたとか未学習なら「this を webBrowser1に置き換え」で回避してよいと思う
0366デフォルトの名無しさん (ワッチョイ 779b-+5sX)
垢版 |
2020/04/21(火) 13:34:05.32ID:3bJr7zNG0
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 の戻り値を変更出来ません」とエラーになります。
0367デフォルトの名無しさん (ワッチョイ 779b-+5sX)
垢版 |
2020/04/21(火) 13:38:13.11ID:3bJr7zNG0
>>366の続き

しかし、以下のようにするとエラーは消えました。

   Nortification nt = new Nortification();
   nt = Form1.nort;
   nt.OpenBrowser = true;
   Form1.nort = nt;

いったん別のインスタンスを作ってそこに構造体ごとコピーし、
コピーのメンバなら値を設定出来ました。

最後に元のインスタンスへコピーし直します。

なぜ元の構造体のメンバに直接値を書き込めないのでしょうか?
そもそも構造体の使い方が間違っていますか?
0368デフォルトの名無しさん (JP 0H8f-nkQT)
垢版 |
2020/04/21(火) 13:51:21.58ID:cdjEy/7BH
>>367
C#入門者が必ず嵌るポイント
c# 値型と参照型 とかでググれば腐るほど出てくる
構造体は特性をよく理解した上でパフォーマンス上のメリットがある場合のみ使うもの
今は忘れてクラスだけ使ってればいい
0373デフォルトの名無しさん (ワッチョイ 779b-+5sX)
垢版 |
2020/04/21(火) 16:44:50.57ID:3bJr7zNG0
おっしゃるとおりクラスに変更したところエラーは出なくなりました。

ググると以下のページのような記述がありました

https://smdn.jp/programming/netfx/valuetype_referencetype/#value_type_property
値型では代入時にコピーが作成されますが、値型のプロパティやインデクサから値を
取得しようとする場合も同様にコピーが作成されます。
値型のプロパティ・インデクサはインスタンスそのものではなくインスタンスのコピーを
返すことから、直接インスタンスを変更することができません。
そのため、次の例のように値型のプロパティを直接変更しようとするとコンパイルエラーとなります。
参照型では変更しようとするインスタンスを参照によって取得することができるため、
コンパイルエラーとはなりません。

>値型のプロパティはインスタンスそのものではなくインスタンスのコピーを返す

ということなのでやはり構造体の型をプロパティにするのは使い勝手が悪そうですね

いっそインスタンス作成時にpublicにしたほうがいいかもと思いました
0374デフォルトの名無しさん (アウアウウー Sa1b-V/21)
垢版 |
2020/04/21(火) 16:56:16.12ID:K2Bh67Tta
>>373
コードを書く側の立場で考えると

>構造体の型をプロパティにするのは使い勝手が悪そう
これはむしろ逆の場合が多いと思うよ。
考えてもみてよ。
プロパティーの値が変更された時の処理をプログラマは普通プロパティーのセッターに書く。
ゲッター経由でプロパティーが実質的に変更されてしまう可能性があるとしたら?
0376デフォルトの名無しさん (ワッチョイ ff2d-QsZ8)
垢版 |
2020/04/21(火) 17:34:55.97ID:Q9kb1Yoh0
値型で高速化の話が出てきたついでに教えて欲しいんだけどさあ
下のそれぞれの変数って、スタックとヒープどっちにメモリが確保されてるの?これであってる???

静的なint型の変数・・・・スタック
静的な構造体・・・・スタック
mainメソッド内に宣言されたint型の変数・・・・ヒープ
mainメソッド内に宣言された構造体・・・・ヒープ
インスタンス内で宣言されたint型変数・・・・ヒープ
インスタンス内で宣言された構造体・・・・ヒープ
0377デフォルトの名無しさん (ワッチョイ 7feb-Ho7r)
垢版 |
2020/04/21(火) 18:06:24.10ID:3Z0ku97Y0
VisualStudioプロフェッショナル版以下使用時、
プログラムの概観を素早く把握したい時ってどうするのがベストなんでしょう?
ctrl + m → o ?

逆に把握してもらいたい時はDocFXとかに頼る形になるのかな
0378デフォルトの名無しさん (ワッチョイ d763-/zZG)
垢版 |
2020/04/21(火) 18:43:14.63ID:gorOElOo0
概要をさくっと把握する、にコード見ろになるの?
概要こそドキュメント、もしくはファイル先頭に概要コメントで詳細は各メソッドのコメントなりコード見ろじゃない?
docをコメントから自動生成するなら書いてある内容の粒度はコメントだろうがドキュメントだろうが変わらん
プログラマが見るならIDEで見れたほうがいい場合もあるしそうじゃないなたhtmlドキュメントみたいなのが良い場合もある
0379デフォルトの名無しさん (ワッチョイ ff8e-eUuY)
垢版 |
2020/04/21(火) 18:50:11.10ID:XAeWC18v0
>>366
なんでget,setしとるの?
0384デフォルトの名無しさん (ワッチョイ b7cf-RulI)
垢版 |
2020/04/21(火) 20:51:10.54ID:E4gE2B8j0
>>379
get,setしないとフィールドにアクセスできないじゃん
0385デフォルトの名無しさん (ワッチョイ ff2d-QsZ8)
垢版 |
2020/04/21(火) 20:56:24.99ID:Q9kb1Yoh0
>>380
全然わかってなかったぜ、ありがとう!
0389デフォルトの名無しさん (ワッチョイ ff8e-eUuY)
垢版 |
2020/04/21(火) 23:09:05.72ID:XAeWC18v0
>>384
structだぞ
0390デフォルトの名無しさん (ワッチョイ b2da-6+K6)
垢版 |
2020/04/22(水) 02:26:50.40ID:C83u6fr40
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 を使用出来ますか?
0391デフォルトの名無しさん (アウアウウー Sa83-GHE+)
垢版 |
2020/04/22(水) 09:28:54.12ID:lrNM/Ez+a
>>390
手で入れたことはないから確証はないけど、.NET Frameworkに含まれるC#コンパイラはRoslynになる前の旧世代のもので止まっているのだろう
普通、新しい.NETはVSのインストーラから入れるもので、そうすればRoslyn世代のコンパイラも勝手に入る
ちなみにC#8では.NET Coreのみに対応しており、.NET Frameworkは完全にサポート外になった
0396デフォルトの名無しさん (ブーイモ MMfd-4A6c)
垢版 |
2020/04/22(水) 20:18:39.80ID:oGjFYrP4M
.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を実装する
0399デフォルトの名無しさん (アウアウエー Sa6a-0GGu)
垢版 |
2020/04/23(木) 19:26:18.65ID:iR4g/Ykka
言いたいことは判るがそれは論点ずらしだ
0400デフォルトの名無しさん (ワッチョイ faad-PpL2)
垢版 |
2020/04/23(木) 19:57:39.98ID:m302zc2R0
作成したアプリの.NETのバージョンが4.6.2で古い4.5がインストールされている環境でも動作させたいのだけど、何もしなくても動かせますかね?使ってるc#のコードは、4.5以降なら動作するんですが。
アプリケーション構成ファイルのsupportedRuntimeとか書き換えるとか何か必要ですか?
0402デフォルトの名無しさん (ワッチョイ faad-PpL2)
垢版 |
2020/04/23(木) 20:17:04.06ID:m302zc2R0
>>401
ありがとうございます。
リビルド出来たらしたくないのですが。
インストールされている.NET毎にアプリリビルドが必要になるんですね。リビルドしないで配布する方法あればいいのですが。
0409デフォルトの名無しさん (ワッチョイ 968e-iRnL)
垢版 |
2020/04/23(木) 21:18:36.78ID:A1RPJ5qa0
>>384
答えろよ
0411デフォルトの名無しさん (アウアウウー Sa30-R0M4)
垢版 |
2020/04/23(木) 21:29:24.37ID:tIS/wRWha
あれれ、たしか数年前の時点で
.NETFramework4.5.2以下のサポートは強制打ち切りになったはず・・・・
いまは最低4.6にしとけば全環境カバーできるものとばかり思ってたけど、俺なにか勘違いしてる?
0416デフォルトの名無しさん (ワッチョイ d49b-Ue8b)
垢版 |
2020/04/24(金) 11:08:50.08ID:VS+6OBXT0
メソッド内でnewしたインスタンスはメソッド抜けたら破棄されるから
disposeしたりnull代入したりする必要はありません!

っていうネット記事を見たんですが本当ですか?
メソッド抜けたら破棄されるのは値型の変数だけで
インスタンスが消費するメモリは解放されないと思っていました
0418デフォルトの名無しさん (ワッチョイ 2f24-Ej8M)
垢版 |
2020/04/24(金) 11:22:24.63ID:jeeSLMOH0
Disposeやnull代入してもそのクラス自体のメモリは解放されない
C#においてはそこはガベコレの担当であって基本プログラマはコントロールできないので少なくともnull代入は完全に不要
Marshal.AllocHGlobalのような明示的に解放しなきゃいけないアンマネージドリソースを使ってる場合にはIDisposable.Disposeが必要になる訳だけど、
ただそれも明示的にDispose()を呼ばずとも一応GCによる破棄タイミングで自動的にDispose()が呼ばれるので絶対呼ばなきゃいけない訳ではない(なんかの理由でDisposeに関しては明示的に呼んだ方が良かったはずだけど)
0420デフォルトの名無しさん (アウアウウー Sab5-BpYI)
垢版 |
2020/04/24(金) 12:08:50.65ID:hmKdXDZUa
>>416
ネット記事じゃなくてちょっと前のここのレスじゃないのそれw
0421デフォルトの名無しさん (アウアウエー Sa6a-0GGu)
垢版 |
2020/04/24(金) 12:14:59.67ID:FFBNt2WCa
>>416
スコープ抜けてからでも使用される戻り値とかはそうだね
スコープ内で完結してたら?
0422デフォルトの名無しさん (ワッチョイ d49b-Ue8b)
垢版 |
2020/04/24(金) 12:25:56.45ID:VS+6OBXT0
>>420
この記事だったかも

https://qiita.com/7of9/items/ed4aa75852ae92c9cc58#comment-3cd34c69333eaf1c2d1e
nullを入れるのはやめましょう。
そんなことしなくてもローカル変数なら最後に登場した箇所以降はスコープ抜けたのと同じ扱いに最適化されます。

入門書にはnullを入れるよう書いてあるのもあるのですが・・・
https://i.imgur.com/VMOSHDY.gif
0423デフォルトの名無しさん (アウアウウー Sab5-BpYI)
垢版 |
2020/04/24(金) 13:00:24.56ID:hmKdXDZUa
>>422
null代入は無意味は(ほとんどの場合)本当
それ言ってるのたぶんVB上がりの人
メモリーの管理はシステム任せでOK

Dispose無意味は(ほとんどの場合)間違い。
IDisposableをわざわざ実装しているのは、不要になったら可及的速やかにDisposeして欲しいから。
コンピュータのリソースにはシリアルポートみたいに数個しか存在しなかったり、拡張スロットやUSBにぶら下がってる
ハードウェアみたいに排他的にしか使用できないものがある。

そういうのは使い終わったらとっとと解放してやらないと他で使えないことになる。
IDisposableはそういう使い方を想定している
0425デフォルトの名無しさん (アウアウウー Sa83-GHE+)
垢版 |
2020/04/24(金) 13:15:41.83ID:5EQwPUhVa
間違ってはいないだろ
nullを代入しておけば、メソッドを抜ける前にGCが走った場合に早期に解放されるかもしれない
ほとんどのメソッドは一瞬で抜けるため無意味だが、極一部の長時間抜けないメソッドではnull代入は必ずしも無意味ではない
0426デフォルトの名無しさん (JP 0H34-GHE+)
垢版 |
2020/04/24(金) 13:22:18.77ID:rjwoLxqDH
null代入して直後にGC.Collect呼ぶのはやったことある
古い.NETのバージョンだと、画像処理とかで巨大なオブジェクトを何度も確保しようとするとメモリ不足で落ちるケースがあった
0430デフォルトの名無しさん (ワッチョイ c252-Z+/y)
垢版 |
2020/04/24(金) 14:56:29.99ID:DJ6Oa20x0
この本はその1ページで説明が完結していて、そこでnullを代入しないとメモリリークが発生すると誤解されるような記述の仕方をするのは、入門書としてNGだろう。
0432デフォルトの名無しさん (アウアウウー Sab5-BpYI)
垢版 |
2020/04/24(金) 15:49:58.69ID:hmKdXDZUa
10年ぐらい前、本屋で結構挑発的なタイトルのCの入門書を見つけたので
立ち読みしてみたら前書きでnullと\0を混同してる記述を見つけてひっくり返ったことがあるw

学校の教科書じゃないんで本に書いてあるからって鵜呑みにしない方がいいねこの分野は。
0433デフォルトの名無しさん (アウアウエー Sa6a-0GGu)
垢版 |
2020/04/24(金) 16:15:17.70ID:3fWjsT92a
>>427
b=null; にしておけばいつの間にかインスタンスが解放されるかも知れません

くらいですね
0436◆QZaw55cn4c (ワッチョイ 6eaa-3Lep)
垢版 |
2020/04/24(金) 17:05:36.49ID:+Mxb0Kwr0
>>418
たとえ null 代入がガペコレの契機にならなくとも、ヒューマン側では意図を明確に記述している点で、null 代入は推奨できる記述方法なのでは?
0440デフォルトの名無しさん (ラクッペペ MM34-3YDc)
垢版 |
2020/04/24(金) 17:13:01.95ID:pn4zFTupM
意図が明確なのと無駄な意図の表明を混同するな
シンタックスシュガー嫌いおじさんと同じ言動だと気づけ
0444デフォルトの名無しさん (ワッチョイ 0a2f-Hty+)
垢版 |
2020/04/24(金) 18:39:20.66ID:4FfGWszI0
>>418
>明示的にDispose()を呼ばずとも一応GCによる破棄タイミングで自動的にDispose()が呼ばれる
かどうかは実装によったはず

>>422,427
その画像のページ見る限り、参照が残ってたらガベコレの対象にならないって説明をしたかったんだろうな
0447デフォルトの名無しさん (アウアウエー Sa6a-0GGu)
垢版 |
2020/04/24(金) 20:50:16.80ID:h9xiDvvfa
例えばCの場合ポインタをfreeした後に再利用予定無いならそのポインタにNULL代入する意味は無いが
NULL代入する習慣があるようだけどC#のnullもそんな感じで代入してるんですか?
0451デフォルトの名無しさん (アウアウウー Sab5-BpYI)
垢版 |
2020/04/24(金) 21:09:13.94ID:hmKdXDZUa
>>447
上にも書いたけど、nullを入れるのは恐らくVB上がりの人
VB6はそういう文化だった

あるいはDelphi?
こっちは触ったことないからよく知らないけど
0454デフォルトの名無しさん (アウアウウー Sab5-BpYI)
垢版 |
2020/04/24(金) 21:18:29.65ID:hmKdXDZUa
>>453
だからCの話はしてないのよw
メモリを解放する意図でnullを代入してるC#のコードを見たけどこれ意味あるの?
って話をしてるんでしょw
0462デフォルトの名無しさん (ワッチョイ 15cf-1Gce)
垢版 |
2020/04/24(金) 23:41:17.84ID:FbIpmtWO0
>>409
何が?
0465デフォルトの名無しさん (ワッチョイ 74da-uMKU)
垢版 |
2020/04/25(土) 01:03:57.76ID:EchrqtYB0
インスタンスへの参照が残ってればGC対象にならない
と言う説明の為に適当にローカル変数を使っただけだと思う

でも読者はローカル変数にnullを入れる事が正しいと思うだろうな
0466デフォルトの名無しさん (ワッチョイ 5c63-QpYc)
垢版 |
2020/04/25(土) 04:46:37.14ID:5x5kZrrV0
質問です
Process.Start メソッドの処理が何故か急にやたら時間がかかるようになってしまいました。
いろいろ条件を変えて調べてみましたが、
実行ファイル(拡張子がexeのもの)を明示的に指定するとすぐ開けるようです。

開きたいファイルに関連付けされた実行ファイルを取得することで解決しそうですが
あまりにイケてないのでもっと良い解決方法を探しています。どなたかご存じないでしょうか。
0467デフォルトの名無しさん (アウアウエー Sa6a-0GGu)
垢版 |
2020/04/25(土) 11:25:01.63ID:4nLfPOGMa
>>464
無限ループの中とか?
そもそもそういう設計ガーって話になるが
0472デフォルトの名無しさん (ワッチョイ 0c01-UN6T)
垢版 |
2020/04/25(土) 18:07:47.14ID:qFkcGRPu0
イメージとしてはこんなコードを書いてるってこと?

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;
}
0475デフォルトの名無しさん (アウアウウー Sab5-BpYI)
垢版 |
2020/04/25(土) 19:33:44.64ID:8r0Ych+Ea
重い非同期メソッドを呼び出す前に不要になる巨大な配列aがあるとすれば、
非同期メソッドを呼び出す前にa = nullにする意味はひょっとしたらあるのかもと思うけど、
>>474の言うとおりそういう猿仕事は本来コンパイラにやって欲しいよね

まあ、そろそろいいのではこの話題。
エクセルのオートメーションとかやる時に鬱陶しいReleaseComObjectがあるけど、
VB6ではああいう感覚でNothingを変数にいちいち入れてたんだよね。
0477デフォルトの名無しさん (ワッチョイ 411d-Zrcu)
垢版 |
2020/04/25(土) 20:36:20.38ID:45wIze2e0
超ブラック企業だったサイボウズが、全社員と「ザツダン」してわかった“見えない不満”の本質
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
0479デフォルトの名無しさん (ワッチョイ 15cf-Ue8b)
垢版 |
2020/04/25(土) 20:51:29.48ID:pYNu3Cma0
>>478
日本語でおk
0480デフォルトの名無しさん (ワッチョイ 0c01-UN6T)
垢版 |
2020/04/25(土) 21:07:37.42ID:qFkcGRPu0
>>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
0482デフォルトの名無しさん (ワッチョイ 4a33-1Gce)
垢版 |
2020/04/25(土) 22:06:04.92ID:n8sMf2Gw0
横から失礼
こんな感じの特異なコードだと、解放対象とさせるためには破棄の段階で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破棄 */ }
 // 長い処理
}
0483デフォルトの名無しさん (アウアウウー Sab5-BpYI)
垢版 |
2020/04/25(土) 23:13:57.58ID:jtuoTa4Ea
>>482
ちょっと何言ってるのか
>/* hage初期化 */
で毎回Hogeのインスタンスを作ってるならインスタンスが変数hageから参照されなくなった時点で
GC対象でしょう
nullいれて何の意味があるの?
0485デフォルトの名無しさん (アウアウウー Sa30-R0M4)
垢版 |
2020/04/25(土) 23:22:38.19ID:tZZhc4pea
>>482
確実に解放対象とさせることを意図したソースにするなら「hage.Dispose();」とするべき、
もっと言えばusing(hage = new Hage()){・・・}にすべきだと思うんだけど、
なんでnullを入れるっていう発想になるの?
ソースを読む側に立ってよ、null代入でリソース解放させることを意図してるなんて初見で解釈できるわけないでしょ
それともHageがIDisposableでない?リソースをバカバカ消費するのにIDisposableになっていないとすれば
Hageクラスの設計が間違ってるんでそんなクラスはゴミだと思ってぜんぶ廃棄するのが正しい

using構文だってC#2.0の頃にはもう存在してたし、
VBみたいないちいちNothingを入れる文化なんて20世紀のやり方だし、
nullを代入することに意味があるとか言ってる奴らの脳みそには
メインメモリがいまだに数十MBしか詰まってないと思って無視していいと思う
0487デフォルトの名無しさん (ワッチョイ 4a33-1Gce)
垢版 |
2020/04/26(日) 00:28:54.90ID:1XpAbCKg0
hage.Dispose()でhage自身が解放対象となりましたっけ?
分かりづらいので>>482 のクソコードを少し訂正して配列にしてみます

×Hoge hage; // hage定義
○double[] hage; // hage定義

× if(n==0) { /* hage初期化 */ }
○ if(n==0) { hage = new double[3840*2160]; /* hage初期化 */ }
0488デフォルトの名無しさん (アウアウウー Sab5-BpYI)
垢版 |
2020/04/26(日) 00:47:35.12ID:v/oAUwR6a
>>484
あw

>>487
そもそも論としてループで毎回無駄な判定をするのは無駄だし可読性も悪い。
素直に初回だけ分けて書こうよ。

同じ処理を二度書くのは保守性の観点から一般的には悪手だけど、>>482よりマシでしょう。
0489デフォルトの名無しさん (アウアウウー Sa30-R0M4)
垢版 |
2020/04/26(日) 01:31:28.57ID:6V39WOnVa
>>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(・・・) {
  // その他配列をいじくりまわすために必要な処理各種
 }
}
0491デフォルトの名無しさん (ワッチョイ e2ad-Op/G)
垢版 |
2020/04/26(日) 05:07:29.90ID:flVxc/260
C#フォームプログラムを0から覚えたくて猫でも分かるサイト見てたんですが
7、8章辺りから説明が雑になってきて分からなくなってしまいました。
もう少しわかりやすく順序立てて解説してるサイトはないでしょうか?
0494デフォルトの名無しさん (ワッチョイ 15cf-Ue8b)
垢版 |
2020/04/26(日) 10:54:27.48ID:LGlXzGY70
>>489
disposeはインスタンスを破棄するメソッドじゃない
0496デフォルトの名無しさん
垢版 |
2020/04/26(日) 11:46:54.16
あのサイト2000年頃からあったよな
作者は50代くらいか
0497デフォルトの名無しさん (ワッチョイ 4a33-1Gce)
垢版 |
2020/04/26(日) 13:34:47.59ID:1XpAbCKg0
>>482,487です
質問の仕方が悪かったみたいです

参照を切るやり方やループの作りとかはどうでもよくて
/* hage破棄 */
の段階でhage=null;を入れた場合は、すぐに解放対象とさせることが出来るが
そのまま保持していた場合は、少なくともループ中では解放対象にはならない
というようなことが知りたかったのです

変な質問に付き合わせてすみませんでした
0501デフォルトの名無しさん (ワッチョイ ee90-HPZ2)
垢版 |
2020/04/26(日) 17:35:11.55ID:QqkrbzyN0
C#使ったデータ保存で手軽にできる方法ってどういった方法でしょうか?
外部ライブラリ使ってもDB使っても構いません
やっぱりEntity Frameworkでしょうか? それともxsd作ってxmlシリアライズの方が良い?
0503デフォルトの名無しさん (ワッチョイ e2ad-Op/G)
垢版 |
2020/04/26(日) 18:28:11.42ID:flVxc/260
>>493
Graphics g = e.Graphics;
graphicsプロパティで変数gを宣言してeのグラフィックプロパティを代入とか意味がわからないです
これをするとDrawなんちゃらって関数呼ぶときに文章が短くなるのは何となく分かるのですが
この著者のコンソール編でプロパティにプロパティを代入とか習わなかったから具体的にどういう状態になってんのか分かりません。
後は関数呼び出すときに仮引数に g.DrawLine(new Pen()とかやってますが仮引数でnew クラス型 とかやる手法はこの著者のページでは習ってないはずなのに
何の説明もなく使っていて理解できませんでした。
他にもたくさんありますが、ただただ真似して書けばいい感が強くて理屈で理解できませんでした
0504デフォルトの名無しさん (アウアウウー Sab5-BpYI)
垢版 |
2020/04/26(日) 18:37:36.62ID:jo9Gp3qca
>>503
ここは質問スレだよw
愚痴は本人に直接伝えた方がいいと思うよ。ここで言ってもしょうがないでしょ。

一般論として、プログラミングの学習では分からないところでいちいち立ち止まってぐだぐだ考えるより
きっと後で何となくわかるようになるだろうと気軽に考えて先に進む方が効率がいいと思うよ。
0505デフォルトの名無しさん (ワッチョイ b6d6-Op/G)
垢版 |
2020/04/26(日) 18:48:31.90ID:fQRF26+R0
>>503
C#はクラス名とプロパティ名が被ってても良いから、前半の左と右のGraphicsの意味は違う
Graphicsクラスの変数gを定義してeのGraphicsプロパティ(型はGraphicsクラス)を代入してる

後半は
Pen pen = new Pen();
g.DrawLine( pen );
を1行で書いてるだけ。
0506デフォルトの名無しさん (ワッチョイ ac63-aCTA)
垢版 |
2020/04/26(日) 18:55:17.00ID:bZwoQ/xt0
そのレベルで不親切だって言うならwebで満足できるものは少なくとも日本語では存在しないんじゃないかな?
書籍でも怪しいと思うけど
プログラムなんてとりあえず真似して書いてその後で色んなところいじってみて動作見て覚えていくもんだと個人的には思ってる
0507デフォルトの名無しさん (ワッチョイ e2ad-Op/G)
垢版 |
2020/04/26(日) 19:01:21.31ID:flVxc/260
>>505
なるほど。変数gの何のフィールドにプロパティを代入してるか分かりませんが
何となくわかった気がします。
仮引数でnew クラス型とするのは省略形として使えるのですね。
全然言及されてなかったので助かりました。ありがとうございます
0508デフォルトの名無しさん (ワッチョイ ee90-HPZ2)
垢版 |
2020/04/26(日) 19:18:30.96ID:QqkrbzyN0
>>502
ありがとうございます
調べてみたいと思います
0509デフォルトの名無しさん (ブーイモ MM5e-enkp)
垢版 |
2020/04/26(日) 19:18:56.74ID:VvmvgJTZM
>>502
それなに?13日の金曜日に出るやつ?
0510デフォルトの名無しさん (アウアウウー Sab5-BpYI)
垢版 |
2020/04/26(日) 19:19:43.16ID:jo9Gp3qca
>>505の人は機能的に等価だと言ってるだけで省略形なんて言ってないし、そんな風に考えるのは間違ってるよw
0512デフォルトの名無しさん (ワッチョイ 9cb2-Hjmu)
垢版 |
2020/04/26(日) 20:34:57.68ID:PGzBFzsM0
まあでも気持ちはわかるわ。おれも初心者の頃はそんな所があった。後から理解は追いついてくるもんだけど、点と点が線になるには、点(小さな知識)を積み上げていくしかないからなあ
0514デフォルトの名無しさん (ワッチョイ 382d-JoBq)
垢版 |
2020/04/26(日) 20:47:48.75ID:h+uhH0sS0
ついでに余計なことを教えて欲しいんだけどさ
こう言うローカル変数に代入しなおすのって、やると参照強度は変わるもんなのかな?
0517デフォルトの名無しさん (ワッチョイ e2ad-h7Ku)
垢版 |
2020/04/26(日) 23:00:31.67ID:VF6JOwzP0
>>513
Interlocked.Incrementで進捗進めて
BeginInvokeで表示更新でいけると思う
0518デフォルトの名無しさん (ワッチョイ ee68-Btmo)
垢版 |
2020/04/26(日) 23:54:19.94ID:7OiNIhki0
全く同じ値なのに違う判定するのってどうしてるんですか?
例えば
public Class SampleClass
{
int x;
}
に対して
var sample=SampleClass(x:1);
var sample2=SampleClass(x:1);

sampleとsample2は値一緒じゃないですか?
でもEqualsだとfalseが出るのは何故?
0519デフォルトの名無しさん (アウアウウー Sab5-BpYI)
垢版 |
2020/04/27(月) 00:42:29.38ID:ynzlI0MBa
>>518
GUI部品みたいにプロパティーやフィールドがいっぱいあるオブジェクトを想像してみ?
例えばLabel
何をもって等価だと判断するの?
Textが同じなら等価?
Textとサイズが同じなら等価?
TextとForeColorが同じなら等価?

そんなことシステムは忖度できないし、逆に勝手に忖度されても困る。
だからObject.Equalsは同一のインスタンスかどうかを検査するだけ。
xの値で等価かどうか判定したいならそのようにEqualsをoverrideしてください。
0524デフォルトの名無しさん (スフッ Sd94-cUrQ)
垢版 |
2020/04/27(月) 09:01:14.66ID:5CwAYVjud
ドットネットではequalsが値比較で、==が参照比較…というのが基本ではあるんだけど、値型に関してはoperatorをoverrideしてあるからほぼ値比較してくれるんだ
0530デフォルトの名無しさん (ワッチョイ 968e-3zx1)
垢版 |
2020/04/27(月) 22:18:43.99ID:VtI6ihiD0
structの時もそうだったがここは答える方が馬鹿ばっかなんだな
0536デフォルトの名無しさん (アウアウエー Sa6a-0GGu)
垢版 |
2020/04/28(火) 10:35:50.04ID:zAZN/f3sa
ある
0546デフォルトの名無しさん (アウアウウー Sab5-BpYI)
垢版 |
2020/04/28(火) 21:39:44.15ID:ozSqZJZ1a
bool Hoge(int n)
{
  var table = new[] { false, true, false, true, false, true, true };
  try
  {
    return table[n];
  }
  catch { }
  return false;
}

クイズとしてはチャレンジングな部類じゃないねw
0547デフォルトの名無しさん (ワッチョイ a402-IlnE)
垢版 |
2020/04/28(火) 21:46:29.35ID:9hpTUu+W0
頭いいな
switchを使わないってとこから単純なif判定も使えない
Containsを使わないってことから{1,3,5,6}みたいなコレクション自体使えない
って意図で考えてたけどその解法は気づかなかった
0548デフォルトの名無しさん (ワッチョイ ac63-w7gE)
垢版 |
2020/04/28(火) 21:55:35.85ID:LE+4zw960
表引きは昔から高速化目的でよく使われる
sin/cosなんかを演算で求めるんじゃなくて0〜90度まで全部コンパイル前に計算しておいてコードに埋め込んでおくとか
メモリ食うことになるしsin/cosみたいな例だと0.5度無理みたいなデメリットはあるけど状況によってはそういうのが有効だったりする
0555デフォルトの名無しさん (ワッチョイ df02-h83k)
垢版 |
2020/04/29(水) 20:05:47.63ID:u+omc4b+0
今後業務用のWEBアプリを作るときはMVCとRazorPagesとBlazorだと皆さんはどれを選択しますか?
クラサバシステムのWEB化の話があるので今後どういう勉強をしておくか迷っています
(MVCやJSの開発経験はあり)
0558デフォルトの名無しさん (ワッチョイ e724-ts7H)
垢版 |
2020/04/29(水) 23:33:34.22ID:ZtFhb2uq0
ファイル圧縮解凍ライブラリについてなのですが、C#の場合はSharpCompressがベストなのでしょうか?
SevenZipSharpという7zipのラッパーもありこちらの方が良さそうかと思いきや、一見すると未完成なようにも見えますが
0560デフォルトの名無しさん (ワッチョイ ffeb-ts7H)
垢版 |
2020/04/30(木) 01:02:25.49ID:I9f6mjLE0
>>558
要件次第だけど、7z他多数のフォーマットに対応したいなら

Frost Moon Projectさんの、7-zip32.dll/7-zip64.dll/7z.dll文字化け対策版
これの7z.dll版がlzhやrar等に対応してる + 統合アーカイバプロジェクト系で自分は使いやすかった

SevenZipSharpも確か最初試したけど、普通に使えた気がする
0562デフォルトの名無しさん (ワッチョイ a72c-XDUq)
垢版 |
2020/04/30(木) 06:38:09.52ID:y9JRI7g10
>>558
多分SharpCompressの方が機能は充実してる
SevenZipSharpはインメモリ内のマルチボリュームを解凍する術がないっぽかったから捨てた
まぁ一般的な使い方をする分には差はないんじゃないかな
大本の7z.dllは優秀だからパフォーマンスは後者の方が高いのかもしれないが
0563デフォルトの名無しさん
垢版 |
2020/05/01(金) 10:47:14.24
SQL Serverとの連繋アプリを作るための参考書探してるんだが
VBのしか見つからないな これ買うしか無いか

WEB情報もVBのしか無いことあるが普通にC#でも使えるTIPS多いし
0566デフォルトの名無しさん (アウアウエー Sa9f-ur4w)
垢版 |
2020/05/01(金) 11:26:57.11ID:k2YlXFh6a
ggrks
0567デフォルトの名無しさん (ワッチョイ e701-1QTE)
垢版 |
2020/05/02(土) 12:22:51.84ID:QOp3K9V60
100%このマシンでしか使わないという自作アプリが何個もあり、そのうちの大半が利用しているJson.NetやLog4NetなどのライブラリをLocal Copy = falseにして一か所のdllを使いまわしたいのですが
GACにインストールする以外の方法はないのでしょうか?
LoadLibrary+GetProcAddressを利用すれば可能なんだと思いますがその場合はVSのサポートを得られないですよね
0572デフォルトの名無しさん (ワッチョイ 67a7-enXe)
垢版 |
2020/05/02(土) 15:54:34.01ID:02dRNXb60
>>567
それって触らなくていいプログラムも共通部を触ったら全部更新必須だからね
その時、アレがないコレがない
別のdllがもうダウンロードできない
フレームワークのSDKを再インストールだ→エラーが出て動かない
動かない動かない


っていう地獄絵図しか見えないんだけど
経験浅いの?
0573デフォルトの名無しさん (ワッチョイ 67a7-enXe)
垢版 |
2020/05/02(土) 15:58:09.98ID:02dRNXb60
なんでもかんでも共通化したらいいってわけじゃないッスよ

関係ないモジュールは関係なくていいの

この自然体が理解できんうちはまだまだ

バナナが欲しかったのにゴリラと森まで付いてくるようなプログラム組んでんだろ?
0574デフォルトの名無しさん (アウアウウー Saab-Ua06)
垢版 |
2020/05/02(土) 16:20:59.74ID:k5W2smL8a
まあ変なこだわりは捨てて素直にサイドバイサイドにしとけよ、とは率直に思うねw
0575デフォルトの名無しさん (ワッチョイ 8763-68pm)
垢版 |
2020/05/02(土) 16:21:26.07ID:3EN4KMOZ0
Windowsが25~15年前に通って盛大に失敗したあやまちだけど
人はまたそのあやまちをくり返そうとしているのか…
0576デフォルトの名無しさん (アウアウエー Sa9f-ur4w)
垢版 |
2020/05/03(日) 10:58:08.08ID:zajIy9nAa
C#を使うともれなくWindowsが付いてきます
0578デフォルトの名無しさん (アウアウエー Sa9f-ur4w)
垢版 |
2020/05/03(日) 11:47:56.93ID:zajIy9nAa
Windows に WSL BOW 等があるように
C# にまるごと Windows が付いてくる訳じゃないのな?
0581デフォルトの名無しさん (ワッチョイ 075f-LBUi)
垢版 |
2020/05/05(火) 07:23:25.99ID:AqRvYPWH0
【新型コロナ】富士フイルム、ゲイツ財団などからコロナ治療薬の製造受託
https://asahi.2ch.net/test/read.cgi/newsplus/1588319133/

c# プログラマ専用病院を作って、外から鍵かけて、理論的致死量の5倍ぐらい未承認治療薬を投与すれば開発速度が上がると思う。

コンピューターオタクに人権はないから、人権侵害にはならないし、c#プログラミングなんて 5ch とスタックオーバーフローを見れば誰でもできるから、プログラマ不足にもならない。
0582デフォルトの名無しさん (ワッチョイ 2301-jgrQ)
垢版 |
2020/05/12(火) 00:36:35.47ID:xM8JclQ70
ttps://qiita.com/satorimon/items/5d2e6db7fe938fee958c
C#でこのページを参考にしたコードを書いているのですが、
var squares = contours.Where(a =>
{・・・})
のところの記述の意味がよくわかりません
中で宣言やらreturnやらしていて何がなんだか・・・でもビルドすると正常に動いてます
Whereで調べてもこのような構文での使い方が出てこなくて困っています
0583デフォルトの名無しさん (ササクッテロレ Sp33-wEAr)
垢版 |
2020/05/12(火) 00:42:27.10ID:oML3x0+6p
>>582
ただの無名関数にしか見えないが...
0585デフォルトの名無しさん (ワッチョイ 5b2d-C0uG)
垢版 |
2020/05/12(火) 00:44:45.73ID:Rm1nFE+i0
>>582
c# ラムダ式
で検索
0586デフォルトの名無しさん (ワッチョイ 2a01-Yqly)
垢版 |
2020/05/12(火) 00:57:05.47ID:rr7jvTFY0
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);
0587デフォルトの名無しさん (アウアウエー Sae2-oySJ)
垢版 |
2020/05/12(火) 01:39:09.58ID:zR/fg8GXa
親クラスを参照する方法はありますでしょうか。
Javaで書くなら以下のイメージとなります。
class A {
int val;

class B {
void Method() {
A.this.val; // ここで親クラスを参照したい
}
}
}
0595デフォルトの名無しさん (ワッチョイ 6a6a-oySJ)
垢版 |
2020/05/12(火) 23:23:20.17ID:qR+vLqM00
ref のことじゃね?
ref var x = ref Xxxxx;
0601デフォルトの名無しさん (ワッチョイ 4da7-071a)
垢版 |
2020/05/13(水) 01:04:23.01ID:9AF39pvJ0
ポインタが欲しいんだろ

class valInt{
public int val;
}

class valStr{
public string val;
}

って作っとけば?
普段は全く必要ないのに
リフレクション使うとき滅茶苦茶必要になったわ
0602デフォルトの名無しさん (ワッチョイ d159-nTbr)
垢版 |
2020/05/13(水) 01:11:53.36ID:HB9dDlz00
質問失礼致します。

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とか)返せる様にすれば良いのかもしれませんが、どうすればいいのかまったくわかりません。。

どうかヒントだけでも教えて下さい、、
よろしくお願いします。
0604デフォルトの名無しさん (アウアウウー Sa31-L7FI)
垢版 |
2020/05/13(水) 01:32:42.10ID:RZkyIb9Ia
>>602
何で素直にforでスキャンしないの?

コードを書く前に、まずそれを自分が手動で行う場合の手順を日本語で明確に表現しましょう。
次にそれをコードに変換する。

インデックスを0, 1, 2と増加させて、両方falseならその時のインデックスを返すんでしょ?
何でそれを素直にコードにしないの
0605デフォルトの名無しさん (ワッチョイ d159-nTbr)
垢版 |
2020/05/13(水) 01:37:13.82ID:HB9dDlz00
>>604
すみません、2日間上手く行ってなくて最初はforで試行錯誤してたんですけど何回も調べて書き直してってやってる間になにがなんだかわからなくなってしまいました。。

もう一度forでやってみます!
0606デフォルトの名無しさん (ワッチョイ 4124-/iGY)
垢版 |
2020/05/13(水) 08:02:36.01ID:9jM9qfYw0
>>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
0607デフォルトの名無しさん (アウアウウー Sa1d-/iGY)
垢版 |
2020/05/13(水) 09:30:48.50ID:RdUH2aEBa
> whileは使わない方が良いよ
それは同意しない
その程度でバグを起こすようなレベルなら何使おうがどうせまともに動くわけない
forをはじめとした、より抽象度の高い他の機能によって自然に代替できるケースにおいてはwhileより他を好むべきだとは思うが、
whileの方が自然なケースってのは存在する
0608デフォルトの名無しさん (ワッチョイ d159-nTbr)
垢版 |
2020/05/13(水) 09:31:40.13ID:HB9dDlz00
>>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で抜ける方法なども想像すらしてなかったので大変勉強になりました。
教えて頂いたコードの方がが安全そうなので参考にして書き直してみます!

本当にありがとうございました!
0610デフォルトの名無しさん (ワッチョイ 2b01-32x/)
垢版 |
2020/05/13(水) 10:20:12.64ID:tJ/HyvQb0
>>593
さんくす、メソッド使うとはちょと予想外でした、いろいろ応用できそう
>>594
さんくす、C++はいまいちわかってないんですが、こんな感じでしょか
int& c = Properties.Settings.Default.Counter

>>595
いけました、うまくうごきました?さんくすです
>>596
ごめんなさいよくわかりません
>>597
いまさらポインタ
0611デフォルトの名無しさん (ワッチョイ 2b01-32x/)
垢版 |
2020/05/13(水) 10:25:24.49ID:tJ/HyvQb0
>>599
何度も使う長い変数をさくっと書きたいなあっと、置き換えでいいんですが、どんなのが標準なのかなと
>>600
さんくす、これいいですね
>>601
さんくす、ポインタっぽいことしたいんですが、ちょと中身が理解できませんでした
0613デフォルトの名無しさん (アウアウウー Sa31-L7FI)
垢版 |
2020/05/13(水) 12:42:25.67ID:KNUhyNjza
別にエイリアスじゃなくて一時変数でいいじゃん
int hoge = Foo.HogeHageDebuBaka;

書き換えないならそもそもエイリアスである必要がないし、
書き換える必要がある場合もほとんどのケースは一時変数に対する変更を最後に一か所で
元のフィールドなりプロパティーに書き戻すだけで済むと思うんだけど違うのかな。
0615デフォルトの名無しさん (アウアウエー Sa93-ahgx)
垢版 |
2020/05/13(水) 13:28:16.32ID:w7cEJ83Ea
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, もだめでした
何か使い方間違ってますか?
0616デフォルトの名無しさん (JP 0H13-2td9)
垢版 |
2020/05/13(水) 13:30:17.94ID:9ouyGW4jH
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
0618デフォルトの名無しさん (ワッチョイ 2b01-32x/)
垢版 |
2020/05/13(水) 16:30:12.93ID:tJ/HyvQb0
>>612
C++の上位互換で、わざわざ使わないだけで使おうと思えば使えるものだとおもってました、ポインタ
>>613
さんくすね、それだとFoo.HogeHageDebuBakaが変化したときにやばいかなと
>>614
さんくすね、プリプロセッサで置換みたいなので大丈夫だと思うけど、staticが入るとどう変わるんだろか
0619デフォルトの名無しさん (ワッチョイ 4124-/iGY)
垢版 |
2020/05/13(水) 16:42:19.79ID:9jM9qfYw0
ポインタは使えるけどC++と違ってstaticなオブジェクトですらガベコレによってアドレス変わる可能性が常にあるから
長寿命なポインタというのは自前でガベコレ管轄外のアンマネージドメモリを確保しない限り成立しない
0621デフォルトの名無しさん (ワッチョイ 5b84-57Gp)
垢版 |
2020/05/13(水) 17:24:13.51ID:D3xPcSfY0
>>615
確認していないので適当だけど、ProcessStartInfoで自分の標準出力を相手に
リダイレクトする指示をしているのに、自分の標準出力に書き出すメソッドを
使っているので、リダイレクトじゃない状態で出力されて相手がリダイレクト元を
見失っているんじゃないかな
>>617が書いてくれたのは書き込む前に自分の標準出力をリダイレクトに
切り替えているので、簡単にやるならば「p.StandardInput.WriteLine」を使うのが
良いんじゃないかな
あ、どうしてもConsole.WriteLineじゃなきゃダメって言うならば>>617の方法に
なるだろうけど
0624622 (ワッチョイ 7f2c-JcAG)
垢版 |
2020/05/13(水) 18:25:56.36ID:VSt/R8YQ0
標準出力以外を使う場合は、標準エラーに出力する時だけ。
標準出力なら、パイプ・ファイルへのリダイレクトも使える

a.rb | b.rb パイプ
a.rb > b.rb 上書き
a.rb >> b.rb 追記
0627デフォルトの名無しさん (ワッチョイ 4124-/iGY)
垢版 |
2020/05/13(水) 21:18:36.78ID:9jM9qfYw0
>>625
ローカル値型変数ならその関数抜けるまではスタック上にあることが保証されるからその関数内限定でCと同じように扱える
バイト配列等参照型もfixed (byte* ptr = &bytes[0]) {}と囲っている間はガベコレにアドレス移動させない通知を出せばそのスコープ間では扱える
ポインタフィールドを持たせたいとかになるとさっき言ったようなアンマネージドメモリを利用するしかないのでC#では実質不可能になってくる
0628デフォルトの名無しさん (ササクッテロレ Sp63-5XO3)
垢版 |
2020/05/14(木) 02:19:30.95ID:2LmxtE+Tp
C#に、lispでいうmapcar関数のようなものはありますか?
0632622 (ワッチョイ 7f2c-JcAG)
垢版 |
2020/05/14(木) 14:04:08.71ID:FSEZeoAj0
>>626
Ruby では、`コマンド`、system(コマンド)などは同期処理だけど、
spawn は非同期だから、すぐに子プロセスのPID が返ってくる

だから、Process.waitpid で、子プロセスの終了を待ち合せる必要がある

p pid = spawn('uname') #=> 1142

Process.waitpid pid

出力
Linux
0633デフォルトの名無しさん (アウアウウー Sa31-7tKh)
垢版 |
2020/05/14(木) 14:53:15.52ID:0DpJdKOEa
List<string>をfor文中で繰り返し初期化して使用したいのですが、
List<string> 変数 = new List<string>()
で出来ますか?
それともfor文の最後でclearしないといけませんか?
ネットにソースが見当たらないので質問しました。ソースもあるよという方はその内容も教えていただきたく。
お願いいたします。
0634デフォルトの名無しさん (ワッチョイ 4124-gIXh)
垢版 |
2020/05/14(木) 15:31:14.00ID:0NVqPTt90
forの中でList<string> 変数 = new List<string>()とループ毎に確保しているのなら終わり際にClearは書かなくていい
文字通りnewだからね
ただパフォーマンス的にはforの前で作ったリストをループ中の最後にClear()して使いまわす方が若干効率は良くなる
一般的な用途であれば差にもならない差だから前者で良いけど
0635デフォルトの名無しさん (アウアウウー Sa31-7tKh)
垢版 |
2020/05/14(木) 16:08:02.92ID:0DpJdKOEa
>>634
なるほど、ありがとうございます。
0641デフォルトの名無しさん (アウアウウー Sa31-7tKh)
垢版 |
2020/05/14(木) 16:56:49.51ID:0DpJdKOEa
>>639
GC機能ってfor文だけでは機能しないと思っていたんですが、初期化時点で古いのは解放されると思っていいんでしょうか?
0645デフォルトの名無しさん (ワッチョイ 4124-gIXh)
垢版 |
2020/05/14(木) 17:23:39.55ID:0NVqPTt90
ListのClearは内部バッファの中身をデフォルトクリアしてCount = 0とするだけであってバッファのキャパ自体はそのまま
Clear後に利用する際にそのListインスタンスのキャパ以下の利用であれば内部でbuffer = new T[capacity]みたいな処理が走らないから効率化される可能性があるという話

一般的なプログラマであればこのようなことを考える意味は皆無なのでnewし直すが正解で良い
0647デフォルトの名無しさん (アウアウウー Sa31-7tKh)
垢版 |
2020/05/14(木) 17:32:02.50ID:0DpJdKOEa
>>645
承知しました。
0651デフォルトの名無しさん (ワッチョイ 977b-p2MU)
垢版 |
2020/05/14(木) 17:49:33.37ID:OtqKph2Y0
たまに勘違いしている人がいるみたいだが、このスレは「初心者用」のスレだから
質問者も回答者も「初心者」だよ
>>650
条件が詳しく書いてないんだから「場合によって使い分ける」
このスレでは「問題なく動けばいい」
0661デフォルトの名無しさん (ワッチョイ 9f9e-X6oS)
垢版 |
2020/05/15(金) 06:10:46.00ID:QqRlTuRs0
言い争いなんか誰もしてません。ここは無知無双を観察するスレです。

clear()は遅いですw スパゲッティになるので逐一newしてますw java思想は正しいですw ヘジは老害コーダーですってwww
0663デフォルトの名無しさん (アウアウウー Saaf-Wcp/)
垢版 |
2020/05/15(金) 08:38:30.68ID:4F5qAPuFa
怪しい時には実装にあたったほうがいいよ
https://referencesource.microsoft.com/#mscorlib/system/collections/generic/list.cs,ca7bce81a50b0aeb,references
count=0だけじゃなくて配列の個々の値も初期値に戻してる
まあそれでも_sizeがかなり大きくない限りは参照型のインスタンスを都度生成して生成してヒープに置くよりローコストだと思うけど
0664デフォルトの名無しさん (ワッチョイ 4f63-4oRg)
垢版 |
2020/05/15(金) 09:26:05.88ID:EzimMGOi0
争いと表現するのもおこがましさを感じる低次元さ
0669デフォルトの名無しさん (ワッチョイ 459b-gIXh)
垢版 |
2020/05/15(金) 13:18:50.33ID:+lfXgI6Y0
名前、年齢、部署を表示する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; //ツールチップの設定

一応これでポップアップするようになったのですが、位置がリストの表示位置と
離れすぎているのでもう少し「リストの文字に覆いかぶさるように」調節したいのですが
方法はありますでしょうか?
0674デフォルトの名無しさん (ワッチョイ ff01-vB/y)
垢版 |
2020/05/15(金) 14:08:20.97ID:zOp0aFPX0
>>669
WPFだと表示位置を調整可能だけどWinFormだとデフォルトでは設定できないので
デフォルトのToolTipをオフにして自分でマウスイベント使ってToolTipを表示する
設定するToolTipのShow()メソッドで位置調整可能
0676デフォルトの名無しさん (テテンテンテン MM17-/iGY)
垢版 |
2020/05/15(金) 15:54:49.38ID:kU/eypzIM
ない
ICloneableがまさにコピー方法等の規定がなく役に立たないために非推奨となったが、特に代替となるインターフェイスはない
MSとしてはコンストラクタ引数にコピー元オブジェクトを渡すことによるコピーを推奨しており、
シャローコピーなのかディープコピーなのかはそのコンストラクタのドキュメントに書くのがよいと思われる
0677デフォルトの名無しさん (アウアウウー Sa31-L7FI)
垢版 |
2020/05/15(金) 16:02:55.82ID:TSXqI5G8a
あったとして使い道を思いつかないw
0690デフォルトの名無しさん (ドコグロ MM7b-cWUa)
垢版 |
2020/05/16(土) 10:36:14.33ID:brzmqlgbM
>>687
この程度ならたいして変わらなくね?
て言うか
> このエラーを回避するには、ローカル変数を使用するか、別のコンストラクトを使用します。
を理解 {でき|しようとし} ない奴が
> To avoid this error, use a local variable or some other construct.
を理解できるとは思えないけど…
0691デフォルトの名無しさん (ワッチョイ ff01-vB/y)
垢版 |
2020/05/16(土) 10:50:18.03ID:5tLRWKNk0
こんな日本語を理解しようとするのは時間の無駄

Ref または out パラメーター 'parameter' 匿名メソッド、ラムダ式、またはクエリ式の内部を使用することはできません。使用する場合、このエラーが発生した、 in、 ref、またはout匿名メソッド ブロックの内部でパラメーター。
0692デフォルトの名無しさん (ワッチョイ 97ad-SWFu)
垢版 |
2020/05/16(土) 11:26:30.30ID:GaPEU8I00
>>689
docsか、すまん。

>>690
よく読めば一瞬で謎に陥る。
>>691
の部分が一番やばい。

俺Xamarin最近いろいろやってるからドキュメントに当たるんだけど、もう少しなんとかならんかなあれ。
MVPあたりに音頭取らせて翻訳をみんなに手伝ってもらえばいいのに。コントリビューション記載してくれるなら権利放棄して喜んでやってくれるだろうに。
0693デフォルトの名無しさん (ワッチョイ 97ad-SWFu)
垢版 |
2020/05/16(土) 11:31:27.82ID:GaPEU8I00
安易にgithubのイシュー切れて、好き勝手文句を書いたように見えたから前回は問題になったんだし、githubでやるより、翻訳するにあたって当たり前のツールで対訳は作るべきだと思うんだがなぁ。
何もTradosを買えって言うわけじゃないけど、何か機械翻訳ではなくてメモリ翻訳+人間でやってほしい感じがするわ。
0695デフォルトの名無しさん (ドコグロ MM51-cWUa)
垢版 |
2020/05/16(土) 12:16:10.04ID:Xg9MPSsRM
>>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'を使用できません

とそれなりの訳文になる
0696デフォルトの名無しさん (ワッチョイ ff01-vB/y)
垢版 |
2020/05/16(土) 14:19:19.88ID:5tLRWKNk0
Cannot use ref or out parameter … だったところに
新機能でinが追加されて修正したやつがミスったんだろ

実際のエラーメッセージはカンマ入りでちゃんと修正されてる
CS1628: Cannot use ref, out, or in parameter 'x' inside an anonymous method…
0699デフォルトの名無しさん (ワッチョイ 6b01-VOoi)
垢版 |
2020/05/16(土) 17:58:30.18ID:gofaxmB+0
練習がてらWindowsフォームでカレンダーを作っています
アプリが選択されていない時でも、例えば特定のラベルに
マウスポインタをかざすだけでイベントを発生させることはできますか?
0703デフォルトの名無しさん (アウアウウー Sa31-L7FI)
垢版 |
2020/05/16(土) 20:00:39.55ID:9bKV5hlVa
ワイルドだろぉ〜?
まで読んだ
0704デフォルトの名無しさん (ワッチョイ a963-9scZ)
垢版 |
2020/05/17(日) 09:17:29.91ID:cGtEzJ7q0
WinFormsでWndProcとかフックしてて思ったんだけど
C++でデスクトップGUI作る場合ってGetMessageループするスレッド立ててWMをswitchさせてって感じでチマチマやってんの?
0705デフォルトの名無しさん (ワッチョイ c3de-071a)
垢版 |
2020/05/17(日) 09:26:02.95ID:qz8+t6v/0
C++もMFCで組む場合はなんかよくわからんイベントで処理されてること考えないとあかんで
c#に移植するときは対応するイベントやメソッドがどれか当てはめるだけで移植できるかもしれんほど似てる

ぶっちゃけこの周りはwin32api時代のが一番見通し良かった
0707デフォルトの名無しさん (アウアウエー Sa93-yXYh)
垢版 |
2020/05/17(日) 10:20:04.65ID:c3b5r+2ta
Win32API が見透し良いのは同意
MFC は糞(ただのラッパーをクラスライブラリと称するとかアホかと)
0708デフォルトの名無しさん (ワッチョイ 6b01-VOoi)
垢版 |
2020/05/17(日) 10:38:34.08ID:WidHY7hL0
>>702
はい

独学だと基本がだめですね
読まないといけない本がたくさんあります

カレンダーは一旦完成したんですけど、また組み直してます
Form1にメソッドが集中するのもどうかと思い、カプセル化の勉強がてらクラスに分けたりしています

あと、デザイナでエラーが起きるのが怖いです
カレンダーの日付が表示される42個の部品をユーザーコントロールで作っているのですが
これのプロパティをいじるとデザイナでよくエラーが起きます
ソリューションのクリーンなどをしてると直るんですけど、それでよかったのかよくわかりません
ちなみにここで言ってるプロパティとは、セッターゲッターのある自分で入力するプロパティです
このプロパティと、プロパティウィンドウでのプロパティはどういう関係にあるのかもよくわからないんですけど。Designer.csをみるとただのフィールドのように見えるので。
0709デフォルトの名無しさん (ワッチョイ eb7c-ahgx)
垢版 |
2020/05/17(日) 10:42:17.99ID:A0b/Dj9R0
馬鹿はいつもあさっての方向に努力するよな
0713デフォルトの名無しさん (ワッチョイ 6b01-VOoi)
垢版 |
2020/05/17(日) 12:52:02.62ID:WidHY7hL0
>>712
大学卒業したての美人の女医さんに
はい、パンツ脱いでおちんちん見せなさいって言われてるようで
はずかしすぎてとても無理っす



落ち着いていろんなことを実験したり調べてみると理解できるようになるんで頑張ってみます
0714デフォルトの名無しさん (ワッチョイ 17f1-8kLo)
垢版 |
2020/05/17(日) 13:26:59.78ID:oJIHh9Jk0
>>713
逆に大学卒業したての美人の女医さんに
はい、パンツ脱いでおちんちん見せなさいって言われる体験をしたいのですが
どうすればいいですか?そんな例えを思いつくくらいだから方法はあるのでしょうね
0716デフォルトの名無しさん (ワッチョイ 17f1-8kLo)
垢版 |
2020/05/17(日) 14:39:23.29ID:oJIHh9Jk0
>>715
0717デフォルトの名無しさん (JP 0H13-2td9)
垢版 |
2020/05/17(日) 15:21:16.64ID:BOpWVUpQH
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
0718デフォルトの名無しさん (ワッチョイ 1384-57Gp)
垢版 |
2020/05/17(日) 15:59:31.45ID:bUEaT9ex0
>>708
使い方とか設定でなにかあるのかもしれないけど、挙動からみるとデザイナはリアル
タイムにクラスのコードを解釈しているのではなく、キャッシュされたコードを使って
描画を行っているっぽい

DataGridViewクラスはhogeColumnクラスとhogeCellクラスを作るとユーザ定義の
セルを作れて、デザイナで作ったセル用のクラスをコントロールできるようになる
けど、作成直後はコードを保存してもリビルドしてもデザイナには反映されない
一旦コードをデバッグ実行すると、次からはデザイナでコントロール可能になるけど
プロパティを増やすとデザイナーに反映されないし、削除するとプロパティがないって
デザイナのコンパイラ(?)がエラーを吐いたりする

一応デザイナ画面を表示させない状態でバイナリのビルドに成功した状態で実行
してフォームが表示されれば、次からはデザイナで操作できるので気にしないで
使ってるけど

.NetFrameworkのソース見ると何か色々、実際のコードとは関係なさそうな指示
コードがたくさん書いてあるので、デザイナで使用するにはこの辺も記述する
必要があるのかもしれないけどよくわからない

デザイナで表示されるプロパティウィンドウに表示されるのは、単純にクラスで定義
されているプロパティなので別に違いはないはずだけどなぁ
0719デフォルトの名無しさん (ワッチョイ 6b01-VOoi)
垢版 |
2020/05/17(日) 17:21:28.05ID:WidHY7hL0
>>718
とても参考になりました
ありがとうございます

デザイナのエラーで元に戻らなくなると怖いので
ソリューションフォルダごとバックアップのためコピーしてるんです。
でも、エラーが起きるはずのないフォルダから起動しても
エラーが一時的に起きたことがあったんで疑問に思ってました。
キャッシュが残ってたからなんですね

>一応デザイナ画面を表示させない状態でバイナリのビルドに成功した状態で実行
>してフォームが表示されれば、次からはデザイナで操作できるので気にしないで
>使ってるけど

これ意識してなかったんですけど、そう言われればその手順でやるとエラー消えてました

プロパティについては理解が浅くて、いろいろ間違えていました。
山田先生の独習を読み直して教科書通りに書き直してみたらエラーが起きないようになりました
setterにいろいろ書きすぎてました。一応動いちゃうので大して気にせずに。

あと、自分で書いたプロパティとの違いですけど、これも勘違いしてました。
例えばForm1はFormクラスを継承してるので、プロパティはFormクラスや
さらにその先のクラスで定義されてるということですね
Designer.csやForm1.csでそれらしきのが書かれていなかったので早合点してました
0720デフォルトの名無しさん (ワッチョイ 2b2c-2D9n)
垢版 |
2020/05/17(日) 18:05:02.43ID:kGA4FYso0
本題とは関係ないけど
> デザイナのエラーで元に戻らなくなると怖いので
> ソリューションフォルダごとバックアップのためコピーしてるんです。
Git導入してみてはどうだろう 一人開発でも十分役に立つぞ
今どきはVSにも組み込まれてるんだし
0721デフォルトの名無しさん (アウアウウー Sa1d-/iGY)
垢版 |
2020/05/17(日) 18:12:17.37ID:T4/b/bLZa
初心者の勉強にGitなんか要らんよ
俺も初心者の頃は意識高い情報に踊らされてバージョン管理しながら勉強してたが、前のバージョンに戻すなんて一度たりともやった覚えがない
もっと言えば、初心者時代に書いたコードなんてはっきり言って何の価値もないゴミだ
後から見返したことは一度もない
0722デフォルトの名無しさん (ワッチョイ d390-6tiU)
垢版 |
2020/05/17(日) 18:27:33.37ID:NeE1Esak0
後々取っておくとこんなのもあったなあ…って懐古しながら成長したことを実感できるよ
0724デフォルトの名無しさん (アウアウウー Sa31-L7FI)
垢版 |
2020/05/17(日) 18:42:33.53ID:sPeeGmAVa
ZIPで固めて丸ごと保存最高だよねw
一瞬で出来るし何の準備もいらん
0728◆QZaw55cn4c (NZ 0H13-RpJK)
垢版 |
2020/05/17(日) 20:03:25.43ID:US7auhKkH
私も昔は CVS のレポジトリを dropbox に置いてお気楽に、ああ便利だ、とやってましたが…
ある日突然レポジトリが死んでしまったのにショックを受けて以来、今も躊躇しているのです
0729デフォルトの名無しさん
垢版 |
2020/05/17(日) 20:22:56.77
>>724
これ
0731デフォルトの名無しさん (ワッチョイ 178e-LqUT)
垢版 |
2020/05/17(日) 20:35:22.45ID:dvSHUyYR0
比較なんてエディタでもできるし
そもそも一人なんだからローカルリポジトリでいいだろ
0736デフォルトの名無しさん (ワッチョイ 3f6a-gIXh)
垢版 |
2020/05/17(日) 21:50:04.36ID:jYDn0xup0
>>732
SourceTree仕事でもメッチャ使ってる
でもAtlasianのアカウント作れって言われるようになって面倒
最近は Git Extensions のUIも頑張ってるからそっちに乗り換えようかとおもってる
0739デフォルトの名無しさん (ワッチョイ 4da7-071a)
垢版 |
2020/05/17(日) 23:11:20.91ID:wfhyoR0J0
>>736
アレさ
フォルダの中のファイル変えるじゃん
現在アクティブなブランチはフォルダ見ただけじゃわからないし
すべての操作が気軽にしてはいけないくせに右クリックのメニューとか
ドラッグ・アンド・ドロップでやらせようとするのがゴミ

操作前に操作後の結果がビジュアル的に見えないといけないツールのくせに
何もしてないし
いらなくね?
普通にtortoiseGitでできる範囲の操作しかしないほうがいい
0740デフォルトの名無しさん (ワッチョイ 3f6a-gIXh)
垢版 |
2020/05/17(日) 23:29:14.84ID:jYDn0xup0
>>739
なんの操作のこと言ってるかわかんないけど何でも楽にできていいけどなあ
間違えたら元に戻せばいいだけだし
そんなに間違えないし
0743デフォルトの名無しさん (ワッチョイ 3f6a-gIXh)
垢版 |
2020/05/18(月) 00:04:19.65ID:g/ITMYKi0
コミット失敗の意味がわからん
間違いコミットなんか別に問題ないし戻りたければ戻れるだろ
pushしてからミスに気付いたのは面倒だけど
それはツールかどうか関係ないしな
0746デフォルトの名無しさん (ワッチョイ 178e-LqUT)
垢版 |
2020/05/18(月) 01:35:24.95ID:gGxx/ysn0
>>745
SQLServerのデータだから何とでもなるだろ
サーバのバックアップも取っていなかったアホの類い?
0749デフォルトの名無しさん (ワッチョイ 4d1d-RHMD)
垢版 |
2020/05/18(月) 02:16:56.43ID:dAzYDVZg0
未経験から半年でフリーエンジニアになれる人の特徴
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
0752デフォルトの名無しさん (アウアウエー Sa93-jstM)
垢版 |
2020/05/18(月) 09:32:08.05ID:vuzvZUyca
ループ中に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の必ずどちらかです)
質問の前提条件が足りませんでしたら指摘お願いします
よろしくお願いします
0756デフォルトの名無しさん (アウアウエー Sa93-jstM)
垢版 |
2020/05/18(月) 10:54:25.11ID:vuzvZUyca
>>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取込用に変換する時点のお話なんです…
0762760 (ワッチョイ 7f2c-JcAG)
垢版 |
2020/05/18(月) 15:54:33.15ID:MslK9QoT0
Ruby なら、x => x
などのラムダ式も、

&:itself などのメソッド名を渡すだけで良い
0770デフォルトの名無しさん (ワッチョイ ff01-vB/y)
垢版 |
2020/05/19(火) 01:21:07.22ID:1Pn0Xhkl0
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()が呼ばれるイメージ)
0772デフォルトの名無しさん (ワッチョイ afad-uRPb)
垢版 |
2020/05/19(火) 01:50:25.74ID:PNm9d/ci0
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のメインスレッドがフリーズするのですがフリーズ回避はどうしたらいいですか?
0774デフォルトの名無しさん (ワッチョイ 7f2c-JcAG)
垢版 |
2020/05/19(火) 08:52:42.15ID:NuzKkPrj0
クリップボードみたいなユーザーよりの機能は、
バックグラウンドスレッドから、アクセスできるかな?

ひょっとしたら、UI(メイン)スレッドからしか、アクセスできないかも?
0776デフォルトの名無しさん (ワッチョイ 5b84-57Gp)
垢版 |
2020/05/19(火) 17:49:11.24ID:+0P+K8Fq0
>>772
STAスレッド(Formのスレッド?)で処理していたらUIの更新が行えないので
正しい動作かな
ClipboardクラスはSTAでしか動かないってなっているので、asyncメソッドでtaskを
実行してdelegate経由のinvokeで呼び出すんじゃないかな
0777デフォルトの名無しさん (ワッチョイ 4d1d-ucyj)
垢版 |
2020/05/19(火) 18:20:34.86ID:8HY/3oGP0
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
0778デフォルトの名無しさん (ワッチョイ ebfd-4TjA)
垢版 |
2020/05/19(火) 18:32:12.04ID:mepgGg800
vb.netとc#の大きな違いってなんでしょうか
仕事で後者を触らないといけないんですが
0779デフォルトの名無しさん (アウアウエー Sa93-ahgx)
垢版 |
2020/05/19(火) 18:34:15.56ID:h69Ba80Ra
vb.net うれしくない
C# どちらでもない
0780デフォルトの名無しさん (ワッチョイ 17f1-8kLo)
垢版 |
2020/05/19(火) 18:49:46.90ID:DkycvRhf0
>>777
ハゲとるやないか
0785デフォルトの名無しさん (アウアウウー Sa31-L7FI)
垢版 |
2020/05/19(火) 20:48:48.06ID:Hcak2SNoa
>>782
あんまり意味のある質問に思えないんだけどw
0786デフォルトの名無しさん (アウアウウー Saaf-Wcp/)
垢版 |
2020/05/19(火) 20:49:42.54ID:jcXcpHtca
>>782
言語仕様はほぼ一緒なんだけど使い手のレベルとか文化とかに雲泥の差が
控えめに言ってVBしかできないような人は20世紀から取り残されたゴミみたいな開発者が大半
BASICの歴史的な経緯からくる負の遺産、いままでに蓄積されたクソコードもてんこ盛り
VBに関わるとダメプログラマに転落するぞ

といいつつC#でも下手するとVS2005〜2008位で時間が止まったままの案件も結構あるけどな
そういう現場にどっぷり漬かるとVBでもC#でもダメエンジニアへの道まっしぐらだ
0787デフォルトの名無しさん (ブーイモ MM81-DBEz)
垢版 |
2020/05/19(火) 20:55:05.94ID:1ZWHWWZ0M
っていうか言語で出来ることが変わるとか制限あるのがおかしい
日本語の「ツンデレ」を訳せる言語が無いとかそういうレベルと違う
0788デフォルトの名無しさん (ワッチョイ 3fac-5iCk)
垢版 |
2020/05/19(火) 20:57:59.68ID:HSamcFUd0
VBはちょっと。。
言語もだけど、書く人の頭が古いからコードまで至るところで古さを感じる
多重for、ifとかそんなレベルで
VB現役でやってる人でもすごい人はいるんだろうけど、稀有やろなあ
0792デフォルトの名無しさん (ワッチョイ d390-6tiU)
垢版 |
2020/05/19(火) 22:18:57.18ID:KmzCw2hp0
数年前に作られたVB.NETのWebシステム知ってる
オフショアで作らせたら動く粗大ゴミが誕生したと聞いた
詳しくは知らんが
0795デフォルトの名無しさん (アウアウウー Sac7-tPY3)
垢版 |
2020/05/20(水) 07:05:09.78ID:QEwx4hM4a
C#で書いてると、たまにVB使うとエンターキーの違いでイラっとくるわ
0797デフォルトの名無しさん (ワッチョイ 5bf1-D4L3)
垢版 |
2020/05/20(水) 10:16:35.82ID:qjNDk5Cx0
エンターキーの違いとは?
0798デフォルトの名無しさん (ワッチョイ c74e-no6W)
垢版 |
2020/05/20(水) 12:59:08.46ID:nNq7q5wW0
public Class MyCustomForm : Form
という自作の拡張Formクラスを作り、コンストラクタで色やいくつかのコントロールを配置したものをメインのForm1で継承させ、コンパイルも上手くいき実際の動作も希望通りではあるのですが、
上記のMyCustomFormのコンストラクタ内で追加したコントロールがデザイナで編集することができません。
まるで背景画像かのように選択すら出来ないものや、選択こそ出来てもAutoSizeやLocationなどの項目が灰色掛かって編集不可能になっていたりします。

InitializeComponent()以外で追加したコントロールをデザイナ上で操作することは不可能なのでしょうか?
0803デフォルトの名無しさん (ワッチョイ 8b01-oW4g)
垢版 |
2020/05/20(水) 16:24:15.65ID:wnqJe1lz0
プロジェクト・リュニオン!
ゴー!リュニオン!
0805デフォルトの名無しさん (アウアウウー Sac7-lIs9)
垢版 |
2020/05/20(水) 18:05:51.93ID:e2MEnn77a
要するに5年ぐらい前に言ってたはずの「Win32を全廃してUWPで一本化する」計画は
諦めたってこと?

まああの話も一瞬出ただけでその後まったく聞かなくなってたけど

>>798
アクセスレベルがprivateになってるとかではなくて?
っていうか、もしコントロールをユーザーコードで追加している場合だけ起こる(デザイナで追加した場合は起こらない)
問題だと分かっているなら変なこだわりを捨てればよいだけなのでは?


まあバグでプロパティがいじれないコントロールも一部あるらしい
https://teratail.com/questions/236012
0807デフォルトの名無しさん (ワッチョイ 9763-xLuj)
垢版 |
2020/05/20(水) 19:08:47.13ID:2OJQAkVy0
リユニオンとか真っ黒になりそう
0808デフォルトの名無しさん (ワッチョイ 8b01-oW4g)
垢版 |
2020/05/20(水) 20:43:28.09ID:wnqJe1lz0
トレイン変形!ゴー!リュニオン!
0809デフォルトの名無しさん (ワッチョイ 9a01-hY51)
垢版 |
2020/05/21(木) 04:25:59.16ID:ShhpHDma0
winフォームアプリなのですが、Form1上のtextBox1に他クラスからアクセスしたい時って
Form1.Designer.csの下の方にあるフィールドをpublicに変えるのはよくない例ですか?

Form1のコンストラクタで自分自身を当該他クラスに引き渡す処理は済んでいます

Form1で、textBox1.TEXTをプロパティにして
他クラスからアクセスする方法も考えたんですけど、
じゃ、テキストボックスじゃなくてリストビューとかだとどうするんだとか考えたら
めんどくさいからもうpublicでいいんじゃないかとか思っちゃうんですけど
ベテランの皆さんはどうしてるんでしょうか
0816デフォルトの名無しさん (アウアウウー Sac7-lIs9)
垢版 |
2020/05/21(木) 11:45:51.28ID:LNx85Gx+a
>>811
頑張って考えるまでもない。
XがFormを参照するんじゃなくて、FormがXを参照するように変えるだけ。

なぜUIの更新なんていう猿仕事を他のクラスにやらせようとするの?
それはUI自身の仕事だよ。
0817デフォルトの名無しさん (ワッチョイ 9a01-hY51)
垢版 |
2020/05/21(木) 14:57:27.90ID:ShhpHDma0
>>812
誘惑にかられますわ
>>813-815
カスタムコントロールとかですか?
ググっていろいろ調べたんですけど面白そうですねこれ
今回の用途にどう使うのかについてはまだ理解できてないですけど
継承ってこういうことに使うんですね
>>816
つまり、他クラスからForm1のtextBox1に書き込む仕様自体がおかしいってことですか
Form1から他クラスに仕事させて、結果をForm1で受けとってForm1からtextBox1に書き込むべきという理解でよいですか
確かにそうですね
他クラスから書き込むとForm1のコードがスッキリするので気に入ってたんですけどよくないってことですね
他クラスの汎用性を奪っているとも言えますね
0818デフォルトの名無しさん (ワッチョイ 9a01-hY51)
垢版 |
2020/05/21(木) 15:28:29.26ID:ShhpHDma0
>>813-815
なんとなく分かりました

public partial class CustomTextBox1 : TextBox

こうやって定義してから、このクラスに処理のためのメソッドをおくとともに
自分自身のTextプロパティに書き込むようにしておく
で、このメソッドをForm1から呼んで処理させればボックスに書き込むことができるっていうことですね

あー勉強になりました
0820デフォルトの名無しさん (ワッチョイ 0e84-BCZG)
垢版 |
2020/05/21(木) 17:41:35.31ID:66n7MLhy0
>>809
やり方は人それぞれなので何が良いとかないと思うけど、デザイナで操作できる
ところはデザイナで操作したほうが良いと思うよ
Designer.csをいじっても結果は同じなんだけど、おかしなコードを書くとデザイナの
挙動がおかしくなったりしてイランことに時間がかかったりするから
0821デフォルトの名無しさん (スッップ Sdba-6rFm)
垢版 |
2020/05/21(木) 17:47:51.10ID:LaJH1wCvd
見掛けは同じように見えても、改行コードのせいでエラー吐いてたプロジェクトをなんとかしてくれと依頼されたことがある
0825デフォルトの名無しさん (ワッチョイ 9a01-hY51)
垢版 |
2020/05/21(木) 19:27:16.30ID:ShhpHDma0
>>820
>>822
コントロールのアクセス修飾子をデザイナから変更できることをさっき知りました
そうすべきでした

元々の質問内容は、直接Designer.csを編集してもよいかどうかではなく、
publicにすること自体いいのか悪いのか、でした。
0826デフォルトの名無しさん (アウアウウー Sac7-vdj3)
垢版 |
2020/05/21(木) 22:44:16.71ID:y7fmuH5Aa
TextBox自体をpublicにするのはやっぱり微妙かなあ
自分だったらForm1クラスにpublic(or internal)なメソッドを作って、
メソッド名をTextBoxにアクセスする目的を明確に表す名前にする

たとえば、
 void set合計金額Text(int price, Color textColor) { }
 string get現在のその他欄入力値()
とか言った感じで
0827デフォルトの名無しさん (アウアウウー Sac7-vdj3)
垢版 |
2020/05/21(木) 22:49:45.68ID:y7fmuH5Aa
あ、小文字始まりでJavaのsetter/getterみたいにしちゃったけどC#なら当然大文字始まり

受け取りたい項目が複数、例えポップアップ表示ダイアログの各項目の入力値を取り出すなら、
入力値を詰め込むInputValuesクラスとかを定義したうえで、
 InputValues GetInputValues() { }
みたいなメソッドを作って入力値をオブジェクトで扱いやすくして返すようにする
0829デフォルトの名無しさん (ワッチョイ 33a7-2bic)
垢版 |
2020/05/21(木) 23:13:48.54ID:iIzHpd9H0
>>826
やめろやめろ
そんなバカなことなれて
コントロールが300個とかあるときどうするんだ
〜するべきとかそもそも元の造りがそんなふうになってないことのが多いのに
無駄なラッピングなんてするべきじゃない
想定するならそれが1000個あるときそれをやってられるかどうかを想定しろ
そもそも少数ならアクセス方法なんてどうだっていいだろ?
想定してるのは大量にある時なんだよね?
0830デフォルトの名無しさん (ワッチョイ ba52-NhWw)
垢版 |
2020/05/21(木) 23:54:34.06ID:VEFS25bE0
>>829
何で勝手に膨大な数のコントロールがある前提なんだ?
質問者はそんなこと全く言ってないし、読んだ限りでは初心者が小規模なプログラムを作ってる可能性の方が高そうだ。
そういう相手に実務上の仕方なくやる汚いやり方を教えるより、場合によっては理想論になるかもしれないが基本的に良いとされる考え方をまず教えた方がいいだろう。
0831デフォルトの名無しさん (アウアウウー Sac7-vdj3)
垢版 |
2020/05/22(金) 00:00:35.63ID:2K6mKaTxa
???
おおもとの>>809では対象はtextBox1の一つだけみたいだけど
でこれがTextBoxからListViewに変わったときとかの話はあるけど
対象項目が大量なんて前提はどこから湧いてきたんだっけ?

というか1画面にコントロールが300個とか1000個とか配置されてて、
全部publicフィールドになってて、法則性もなくあらゆるコントロールに無尽蔵にアクセスする
なんて、その時点でソースから腐臭が漂ってるよ
そこまで酷い状態になってるなら諦めて全部publicにするしかないでしょう
後日メンテナンスしなきゃならないときの影響調査で死ぬだろうけど
0833デフォルトの名無しさん (アウアウウー Sac7-lIs9)
垢版 |
2020/05/22(金) 01:10:19.16ID:mKnPmupma
>>826のラッピングが無意味で有害無益なのは>>829の言う通りで、
問題点をはっきりさせるために大量のコントロールがあるケースを想定するのも間違ってない。
だからと言って>>812にあるようにコントロールをpublicにするのもダメ

OOP的な考え方もカプセル化の意味も分かってない人がこうも大量にいるのは困っちゃうねw
0835デフォルトの名無しさん (ワッチョイ 97de-2bic)
垢版 |
2020/05/22(金) 01:29:28.72ID:tRHrER1d0
>>830
良くないじゃん
だってお前のやり方は数が増えたら手間ばっかり増えて何のメリットもないし
数が少なければ見通しが効くからラッピングなんかいらないわけで
この世に必要ないことしてんだよ
0836デフォルトの名無しさん (アウアウウー Sac7-lIs9)
垢版 |
2020/05/22(金) 01:35:16.74ID:mKnPmupma
>>834
何の理由?
つーかこのレベルの話が分からん人は回答する側に回ったらダメだろうさすがにw
0838デフォルトの名無しさん (アウアウウー Sac7-lIs9)
垢版 |
2020/05/22(金) 01:47:55.06ID:mKnPmupma
>>837
だから、それって「どうしてカプセル化なんて必要なの?」って聞いてるのと同じだよw
カプセル化が重要なのは人間の脳が複雑性に対して脆弱だから。
だから必要な物だけ見せてそうでないものは見せないことによって複雑性を減らす必要がある。

例外はあるが、基本的にはUIはメンバーを外部に公開する必要がない。
表示を更新するのも、ユーザー入力をモデルに伝達するのも全部それはUIの仕事。
それを他人にやらせようとする発想が根本的に間違っている
0844デフォルトの名無しさん (ワッチョイ 3761-crVl)
垢版 |
2020/05/22(金) 10:09:40.93ID:ImtqKYD30
コントロールに直接アクセスを許すんじゃなくて根っこにあるデータへのアクセスを許すようにしとけばいいんじゃね?
コントロールとデータはBindingしてんだからそれでいいだろ
0847デフォルトの名無しさん (アウアウウー Sac7-8pht)
垢版 |
2020/05/22(金) 10:32:58.69ID:I4qPJ3i7a
>>841
それはフォームにメンバを追加してラップしたところで解決にならん
フォーム自身がコントロールとして元々持っている大量のメンバはどうするんだ?
もしスレッドセーフにしたいのならフォーム自体も公開してはいけない
0848デフォルトの名無しさん (アウアウウー Sac7-lIs9)
垢版 |
2020/05/22(金) 12:22:25.06ID:/6UQkCjLa
>>846
そんな大げさな話?
コントロールへのアクセスはFormの仕事だから他人にやらせようとせずにForm自身にやらせろと言っている。
これのどこがそんな難しい話?

ファミレスで客が厨房に乗り込んで注文出さないのと同じことだよ
注文を受けるのはウェイトレスの仕事
パスタの担当が厨房の佐藤さんであることを客が知ってないとナポリタンの注文を
出せなようなファミレスにあんた行きたいか?w
0850デフォルトの名無しさん (ブーイモ MM26-NLVI)
垢版 |
2020/05/22(金) 13:06:32.78ID:Yx9iiiQWM
ぶっちゃけアーキテクチャパターンと規模次第

MVVM、MVU、MVCの場合はVの機能をV以外に公開することは滅多にない
MVPでは逆にVの基本的な機能をインターフェースで抽象化して積極的にPに公開してコントロールを委ねる

Formの主力アーキテクチャはどうなっているかというとMVPのVPが結合した怠惰なアーキテクチャになってる場合が非常に多い
丁寧に作るならPに書くべきコードが手抜きされてVのFormイベントに書かれてしまっている状態

VPが結合してるからprivateなコントロールを抽象化しなくてもアクセスすることはできる
しかしそれでは規模が大きくなるほどメンテナンスしにくくなる
VPが結合していても基本的な機能を抽象化しておくと後々のメンテナンスが楽になる

このような自クラス内部に向けて抽象化された安全なインターフェースを提供する開発手法を自己カプセル化と言う
0852デフォルトの名無しさん (テテンテンテン MMb6-8pht)
垢版 |
2020/05/22(金) 13:22:07.31ID:jD2+szsjM
>>849
そういう問題じゃない
注文相手がウェイトレスだろうと厨房にいる店主のオッサンだろうと、客がすることは「注文を店の人に伝える」だ
その注文を受けて店がどうするかという実装の詳細は知ったことではない
ケースバイケースで判断するべきは、そのフォーム同士のやり取りが客と店の間で行われるのか、それとも店の中で行われるのか、という点
後者なら例えばウェイトレスが厨房の設備のレイアウト等を知っていることを前提としてコックへ依頼をすることは店の規模次第では許されるし、そうしたほうが手っ取り早いケースは多いだろう
これは突き詰めると責任分界の問題で、フォームの役割や開発チームの構成等によって最適解は変わってくる
0855デフォルトの名無しさん (ワッチョイ ba52-NhWw)
垢版 |
2020/05/22(金) 14:44:15.74ID:YTFb7Y3X0
>>853
初心者のうちに気づける失敗はどんどん経験させた方がいいと思うけど、今回の話みたいに、規模が小さいうちは悪手でも問題なくてそれに気づかず変な癖をつけてしまって、後になって大きな規模で問題に直面することもあるからちゃんと説明するのは大事だと思う。
0870デフォルトの名無しさん (ワッチョイ 032d-ze6u)
垢版 |
2020/05/23(土) 11:45:11.67ID:USRRjb5n0
withってコンストラクタは呼ばれるのかな?
0872デフォルトの名無しさん (ワッチョイ a3ad-T1cz)
垢版 |
2020/05/23(土) 12:58:29.38ID:MMWDLofe0
何気にトップレベルで直接プログラムが開始できるの嬉しいな。
小さいスクリプト的な使い方で便利になるかもしれん。
dotnet run xxxx.csみたいに出来ると言うことないな。
0873デフォルトの名無しさん (ドコグロ MM92-zJk2)
垢版 |
2020/05/23(土) 14:33:05.59ID:N5u382BOM
>>872
個人的にはやり過ぎだと思うわ
コンパイルが不要になるわけじゃないしちょっと複雑なことしようと思ったら変数宣言も要るからあんまりメリットに思えない
スクリプトならPowerShellでお腹いっぱい
0875デフォルトの名無しさん (テテンテンテン MMb6-8pht)
垢版 |
2020/05/23(土) 14:50:01.02ID:rR3WkHU8M
今時のWeb開発だとマイクロサービス指向で小物を沢山作ることが多くなってて、
振る舞いを色々備えててカプセル化とかもきっちりやったリッチなモデルよりも、単にデータクラスを関数で弄るだけみたいなスタイルが主流になりつつあるんだよ
Main省略もその文脈で言えば自然
最近のC#周りは完全にアメリカで主流な内製開発に迎合していて、日本のドカタには理解されにくいね
0876デフォルトの名無しさん (ワッチョイ a3ad-T1cz)
垢版 |
2020/05/23(土) 15:00:31.21ID:MMWDLofe0
>>873
コンパイルがまるで不要かのように振る舞わせたいんだと思うよ。
replできたり、dotnetコマンド見てると。
確かに、csxはどうしたいんだろうな。
個人的にはPowerShellは抵抗感あるかもしれん。
0877デフォルトの名無しさん (アウアウエー Sa52-NLVI)
垢版 |
2020/05/23(土) 16:46:21.29ID:wudsPJksa
新しいものごとを追求するのはNodeとかにまかせておけばいい
静的並の型安全性、動的の起動速度、モダンな構文、モダンな機能、豊富なパッケージと全てが揃ってるからC#が追いかけても勝ち目ない
C#に求められてるのは業務向けの特性、つまり安定性、安全性、後方互換性、学習の簡単さ(シンプルさとも言える)とかだよ
ポストJavaにふさわしい言語に育ってほしい
0878デフォルトの名無しさん (ワッチョイ a3ad-T1cz)
垢版 |
2020/05/23(土) 17:07:15.43ID:MMWDLofe0
追いかけてると言うよりも、ニーズがあるんだと思うよ。
実際にはnodeとかより、同じコンパイル言語のkotlinあたりからの機能な印象が強い。
initアクセサとか。
あと、データクラスの
public data class Person(string FirstName, string LastName);
は実際、滅茶苦茶便利だと思う。これもkotlinでもできる。

ポストJavaは言うとおりだと思うけど。
0880デフォルトの名無しさん (ワッチョイ a3ad-T1cz)
垢版 |
2020/05/23(土) 17:39:18.54ID:MMWDLofe0
Java並の求めるレベルがわからんが、OS無しのJavaチップとかまで入れられると完敗だな。
.net coreであれば、LinuxかmacかWindowsなら、ってレベルで良いなら全然大丈夫だし、armでも動くし、
.NET 5なら純正でAndroidやiOSでも大丈夫って言えるんじゃない?
0881デフォルトの名無しさん (ドコグロ MM03-zJk2)
垢版 |
2020/05/23(土) 17:53:05.15ID:/js8a+7YM
>>876
> コンパイルがまるで不要かのように振る舞わせたいんだと思うよ。
それはあまり無理なくできると思うけど、今の言語仕様のままだと
class Program{
 static void Main() {

 }
}
を書かなくて済むって言うだけだからそんなに嬉しいような気がしないんだけど
> 個人的にはPowerShellは抵抗感あるかもしれん。
まあPowerShellは好き嫌いがあるとは思う
俺も配列周りはちょっと嫌
0884デフォルトの名無しさん (オッペケ Srbb-crVl)
垢版 |
2020/05/23(土) 20:35:16.02ID:82HS7qFwr
普通にC#はすたれていくと思う
他の言語より優れた面がかなり少なくなってきて仕様がファットになりすぎてきてる
それでいて簡便にも書けない

思想が違うのはわかるけど…
0885デフォルトの名無しさん (ワッチョイ 2702-CPqG)
垢版 |
2020/05/23(土) 20:55:20.41ID:e9KeJQaL0
別に開発環境なんて何でもいいじゃん。
要望があったり、使いやすいものを選択すればいいだけ。
言語スレで言う台詞じゃないけど。w

C# は言語仕様もそうだけど、それ以上に VS が秀逸すぎる。
0886デフォルトの名無しさん (ワッチョイ 9a6a-crVl)
垢版 |
2020/05/23(土) 21:24:54.50ID:Gttmmg320
>>878
未確認飛行を読むとinitなんかは随分前から課題になってたらしいね
0892デフォルトの名無しさん (ワッチョイ 032d-ze6u)
垢版 |
2020/05/23(土) 22:38:04.92ID:USRRjb5n0
Webの学習は心が折れるわ
ASP.Net coreのチュートリアルは長い上、終わった部分にも結構な謎が残る
例えば、データベースサーバをアカウント管理とそれ以外と別にしたい場合、どうするのが正攻法なのか?とか、全然わからん
0894デフォルトの名無しさん (ワッチョイ 032d-ze6u)
垢版 |
2020/05/23(土) 23:51:57.43ID:USRRjb5n0
そこを1文切り取られちゃうとそうかもな
どうか、ASP.Net coreを使うときの話でって前提で頼みまんす
0895デフォルトの名無しさん (ワッチョイ a3ad-T1cz)
垢版 |
2020/05/24(日) 00:05:07.40ID:gPIK88xN0
C#廃れるかな?
ここが巻き返し時だと思うけど。
Windowsで開発するときはC#一択だったのが、他の環境でもC#を選べるようになってきたんだし。
ファットと言うほどファットでないと言うか、必ずしも使わなくても良い機能は確かに増えたけど、使わなければ良いだけだと思うけどな。
Xamarinが.net本家に合流とかときめくけどね。

>>886
そうなんだ?あんまり最近読んでなかったな…
0897デフォルトの名無しさん (テテンテンテン MMb6-8pht)
垢版 |
2020/05/24(日) 00:24:21.69ID:TzQxyCjoM
>>894
コネクションを複数使い分けたらいいだけだろ
EFならDbContext分けるだけ
フェデレーションとか使う手もあるが、インフラに変な前提を持ち込むのは個人的にはお勧めしない
管理対象が増えて結果的に余計に面倒になる
0898デフォルトの名無しさん (アウアウウー Sac7-8pht)
垢版 |
2020/05/24(日) 00:37:52.59ID:j6xo7mIMa
廃れるかどうかはAzureで.NETアプリのPaaS環境をどれだけ整備できるか次第じゃないかな
少なくとも今のAzure App Serviceはクソ以外の何者でもないし、
最近のAzureはコンテナに傾倒してるが.NETアプリをコンテナ化するニーズとか皆無なので厳しい状況だが
0902デフォルトの名無しさん (ワッチョイ a3ad-T1cz)
垢版 |
2020/05/24(日) 08:52:34.10ID:gPIK88xN0
あれはまぁ確かに。
やらかしたと思ったけど。
ただ、若い姉ちゃんだったから余計に問題になったんだけど、なんとかユーザーグループってえらいおっちゃんにも囲む会とかするぞ。
で、ユーザーグループでの事案を選定の対象外にするのはちょっとお門違いな気がするわ。
正式セミナーではなくて、ユーザグループの勉強会だしな。

>>901
Xamarin勉強会で誕生日祝って、結果的にサイン会とツーショット会になった。
0904デフォルトの名無しさん (アウアウウー Sac7-vdj3)
垢版 |
2020/05/24(日) 09:12:12.58ID:XUG+Lg/fa
へ?それだけ??
何か刑事事件になるような話だったりパワハラセクハラ方面の倫理的な問題とかでもなくて?
開発技術選定に影響を与えるような話には思えないんだけど
>>900のいう「まともな会社」ってのはこういう話を基準に意思決定するものなのか
0911デフォルトの名無しさん (ワッチョイ 6301-UYz0)
垢版 |
2020/05/24(日) 09:40:59.00ID:0NoVcrVy0
別に本人が悪いとは言っとらんでそ。

JXUGのポジションがおかしい
MS系のセミナーなんて品川や新宿でも
やっていたんだが(SE主催とか本社主催とか)、
主催者が俺達はお前らより偉い。
理由は神に近いからだってスライドあげて
同意を得られると思う?
0912デフォルトの名無しさん (ワッチョイ 33a7-2bic)
垢版 |
2020/05/24(日) 09:44:09.04ID:HTbn0mhn0
>>910
でもね
みんなやたらと情報出て来ないし
割りかし本気でそういう意図なの?って思ったんだよ

俺らと仲良くしないとxamarinでの開発はできないからね

っていう意図に感じた
その後に気持ち悪いケーキカットでしょ?
ああ、そう、そうなのね・・・
0913デフォルトの名無しさん (アウアウウー Sac7-vdj3)
垢版 |
2020/05/24(日) 09:47:54.26ID:XUG+Lg/fa
えっと、気持ち悪いのはXamarinコミュニティ界隈ってことなのね?
>>905の書き込みのほうがよっぽどネットストーカーというか気持ち悪いアンチっぽく見えたんだけど

ていうかC#が廃れる原因がちょまどって話じゃなかったのね、誤読してたわ
Xamarinは使ったことないから自分にはわからん
0915デフォルトの名無しさん (ワッチョイ a3ad-T1cz)
垢版 |
2020/05/24(日) 09:51:50.80ID:gPIK88xN0
まあJXUGに関してはどうとも言えんけど、別に喧嘩しながらやる必要もないし、逆に仲良くしながらやる必要もないぞ。
Xamarin普通に使ってるけど、とくに利益相反は無い。
Xamarin自体は良いもんだから、それが誤解されるのはちょっと悲しいわ。

あんまり変な色眼鏡で見ないほうがいいと思うの。
0918デフォルトの名無しさん (ワッチョイ a3ad-T1cz)
垢版 |
2020/05/24(日) 10:03:40.11ID:gPIK88xN0
いちいちユーザーグループのいち登壇者のいちスライドに対して反論したりしてたらきりないっしょ。
なんか、よっぽど嫌いなんだなとしか言いようがないと言うか。

ちょっとその反応度の高さに引くわ。
ユーザグループとかああいうノリ自体、輪に入る、聞き流すという行為が苦手なのかね。
0920デフォルトの名無しさん (ワッチョイ 9a1a-fHJf)
垢版 |
2020/05/24(日) 10:19:41.16ID:Zr7A90Cs0
>>909
うわ吐きそう
0921デフォルトの名無しさん (アウアウウー Sac7-8pht)
垢版 |
2020/05/24(日) 10:20:21.28ID:N7cNYcK3a
>>918
ちょまど祭り上げはde:codeの公式セッションなんかでも結構やってるよ
AWSやGCPのイベントにも何度か参加したけど、それらに比べても明らかにノリが気持ち悪いのは残念ながら事実
あれ米国MSのゲストも変な顔してたしいい加減怒られるんじゃないか
0925デフォルトの名無しさん (ワッチョイ 5b40-m5P2)
垢版 |
2020/05/24(日) 11:38:45.43ID:X8UkIXV20
何の話だと思って調べてみたら、男ばかりのオタコミュあるあるやん
持ち上げにノルひととノラナイひとで対立させた以上、これをサークルクラッシュと呼ぶんだよなぁ・・・
0926デフォルトの名無しさん (アウアウウー Sac7-lIs9)
垢版 |
2020/05/24(日) 13:20:51.13ID:GPV2jvNGa
日本人のメンタリティーの基盤ってつくづく「村人」なんだねw
どのセクターもみんな「村」の中の人間関係に対する関心が異様に高い。
横溝正史の小説の世界だな。

日本人のこういうところ、他人事として俯瞰してみたら陰湿でダセーと思う人の方が
多いはずだと思うんだけど
0929デフォルトの名無しさん (ワッチョイ a3ad-T1cz)
垢版 |
2020/05/24(日) 16:23:34.69ID:gPIK88xN0
よくそんな基準でNG出るなぁ。
結構不思議かもしれん。
MSが明確にあのイベントのあの取り組みを後援したならそりゃNG出るだろうけど、特に止めなかった程度でコンプラ違反として扱うのはどうかと思うが。
単純に興味があるが、MSがなんていう声明を出せば良いんだろう?
別に庇ってるわけじゃなくて、一部に悪ノリがあることはわかってるが、我々の関知するべきものではないという判断なんだが。

うちは普通に使うべきシーンでは使ってるけどな。
というか技術選定にコミュニティも何も無いと言うか。
便利なのにもったいない。
0930デフォルトの名無しさん (アウアウエー Sa52-pTKR)
垢版 |
2020/05/24(日) 17:03:31.11ID:x8aMDsmma
J●UGってロクなの無いな
0931デフォルトの名無しさん (アウアウウー Sac7-lIs9)
垢版 |
2020/05/24(日) 21:48:37.40ID:GPV2jvNGa
ちょっと質問

SynchronizationContext.Sendって引数で渡したデリゲートが同期コンテキストのスレッドで
実行完了するまでブロックされるって理解で合ってたっけ?
0933デフォルトの名無しさん (ワッチョイ 032c-BHqY)
垢版 |
2020/05/24(日) 22:50:13.77ID:vethg+c+0
厳密な考え方では違うのかもしれんが
Send/Postが同期/非同期に対応してるから完了までブロックと考えていいよ
WinFormなんかは単純にInvoke/BeginInvokeで実装してるし
0934デフォルトの名無しさん (アウアウウー Sac7-lIs9)
垢版 |
2020/05/24(日) 23:16:15.55ID:GPV2jvNGa
>>933
ありがと!
0935デフォルトの名無しさん (ワッチョイ 032d-ze6u)
垢版 |
2020/05/25(月) 16:52:16.63ID:CLMMg9Ns0
すまんが、継続的に動かしたいタスクの抜け防止ってどうやるの?
素人考えでこんなのをタスク処理の最後に入れてるんだけど・・・・もっとまともな書き方あるのかな
while (cancellationToken.IsCancellationRequested == false){
await Task.Delay(1000);
}
0937デフォルトの名無しさん (ワッチョイ 9a84-BCZG)
垢版 |
2020/05/25(月) 17:24:53.54ID:qg6WFaTF0
別に問題ないと思うけど
タスクの最後にwhileループって言うのが良く意味がわかんないけど
バックグラウンドにしたい処理をwhileの中に記述して「IsCancellationRequested」が
「false」な間whileで無限ループが普通じゃないかな
あとDelayが1秒ならばどうでも良いのかもだけど、Delayに「cancellationToken」を
指定してエクセプションをキャッチするようにしておくと、Delay時間待たなくても
すぐに処理終われるとか
0938デフォルトの名無しさん (ワッチョイ 032d-ze6u)
垢版 |
2020/05/25(月) 17:39:01.13ID:CLMMg9Ns0
ありがとう!
WebSocket通信のタスクで終わられちゃ困っていて、タスクが終わられると困るだけでwhileで回すものもないし・・・・これで凌いでたよ
でもこんなの見ないってことは、もっと根本的に違った別な正攻法があるのかな
0940デフォルトの名無しさん (ワッチョイ 4e2c-5qFb)
垢版 |
2020/05/25(月) 18:22:47.52ID:gis+qwRr0
JavaScript で非同期通信は、callback 関数を指定して待つだけ。
タイムアウト時間が過ぎたら、エラーになるだけ

while みたいな、busy loop を使わない。
CPU が100% に張り付いてしまうから
0942デフォルトの名無しさん (アウアウウー Sac7-lIs9)
垢版 |
2020/05/25(月) 21:43:15.87ID:GUauqgR5a
まあ設計というかロジックに問題があるようにしか正直聞こえないけど、
そこはいいでしょ別に
0943デフォルトの名無しさん (ワッチョイ fa3c-bAg/)
垢版 |
2020/05/25(月) 22:31:36.47ID:3aP0Z4na0
つーか、Monoで学ぶC#オブジェクト指向とか言う本、わざわざMonoで学ばんでも普通のVSでマナびゃいい内容なんすけど。

MonoでやるならLinuxGUI作る方法でも教えてくれる方がよほどいい。
0946デフォルトの名無しさん (ワッチョイ a3ad-T1cz)
垢版 |
2020/05/25(月) 22:40:48.57ID:UFuP99WV0
>>945
使ってるし、まともにアプリ作れるよ。
任天堂も一つのアプリで使ってるらしいけど。

俺はXamarin.Formではなくて、Xamarin.Android使ってるけど、ほとんど普通のAndroid開発の言語がC#になった感じで、特に固有の情報は必要でない。
悩むんならJavaでやるよりkotlinでやったら良いんじゃない?
0952デフォルトの名無しさん (ワッチョイ 76c7-tqmx)
垢版 |
2020/05/26(火) 11:17:56.86ID:i0q/U3sp0
unityできればc#もできますか(´・ω・`)
0954デフォルトの名無しさん (ワッチョイ 977c-DQiu)
垢版 |
2020/05/26(火) 11:55:03.61ID:gxc82pqW0
Unityで造った3Dゲームを
C#はそのままでUnityじゃなくてVC#だけの環境でコンパイルして遊べますか?
0956デフォルトの名無しさん (スププ Sdba-T1cz)
垢版 |
2020/05/26(火) 14:42:23.17ID:wUEZ7fxyd
擁護とか言われるとなんかモヤるわぁ。
ああいうのは良くないと認めた上で、Xamarin自体は悪くないよと言ってるんよ。

スポンサーを説得できないのはまた別問題じゃん。
そこまでして使うもんではないと言う判断も一つ、
提案自体へのニーズというかXamarinがふさわしいと思うポイント一つ、
提案と提案力の問題が一つ、
色々合わさって技術選定するんだから。

主観的に気持ち悪いしスポンサーにオッケーって言わせられないから使わないよーってのは、個人の能力や主張であって、それを理由にされるのはなんか違う気がするわ。
一時期のアンチMSの人たちと変わらん精神性に見える。
0957デフォルトの名無しさん (ワッチョイ 6301-UYz0)
垢版 |
2020/05/26(火) 14:53:44.10ID:O4WcavVK0
ITバブルの会合にヘリコで乗り付けて、
都知事激怒させて資金注入中止させた
事件があっただろ。それと同じ。

軽薄な連中が遊び半分にやってるプロダクトと
レッテルを貼られたから大規模開発の
予算が取れない。だからせめて名前を変えてくれないと未来は無いって言っているの。

内容については言及していない。
0959デフォルトの名無しさん (スププ Sdba-T1cz)
垢版 |
2020/05/26(火) 15:57:37.96ID:wUEZ7fxyd
レッテルを今も貼り続けてるのは自分たちじゃん。
その調子だと名前変えてもどうせ未来は理由を見つけるんでしょ。

そもそも、個人的にも使ってるが、仕事でもそれなりに大規模開発の案件で何プロダクトも予算どころか本番投入できてるからその主張が謎なんよね。

まあもう疲れたし良いわ。
何言ったって無駄っぽいし。
0965デフォルトの名無しさん (アウアウクー MMfb-egCw)
垢版 |
2020/05/26(火) 16:59:22.59ID:UeJz6oGUM
イベントハンドラがよくわかりません。

PaSoLiにかざされたFelicaの内容をForm上に表示するプログラムを作成しています。
かざされた、というのを判定するためにはどういうイベントハンドラの設定が必要ですか?

ひとまずFormにタイマーを設定して、時間経過毎にPaSoLiの状態をチェックする…というのを考えたのですが、
他に何かいい知恵がありましたら教えてください。

よろしくお願いします。
0967デフォルトの名無しさん (アウアウクー MMfb-egCw)
垢版 |
2020/05/26(火) 17:14:46.85ID:UeJz6oGUM
>>966
Sony PaSoRi 3.0 と Win10機をUSBで接続しています。
開発キットは…使っていません。最終的に簡単なタグを作成したいので、WinSCardをラップし使用しています。
(Sonyの無料スターターキットは書き込みの関数がなかったので…)

情報後出しになってすみません…
0969デフォルトの名無しさん (ワッチョイ ab84-BCZG)
垢版 |
2020/05/26(火) 17:40:48.36ID:XnLSD37X0
>>938
うーーん、処理はしないけどメソッドを抜けないようにする意味が分からないのは
そのままなんだけど、ずーーーとそこでとまっていれば良いのであれば「Delay」の
引数を「-1」にすればwhileで回す必要ないよ

で、whileで回すのをあまり見ないのは、みんな大好き美しいプログラミングだと
空ループはシステムに任せて、各種イベントで処理の振り分けを行って必要な部分
だけを非同期処理ってやり方をするので、自分でループ処理を用意する必要が
ないってのが基本

でも、実際にはあらゆる処理に自分が必要とするイベントが実装されているとは
限らないので、独自のイベントを返してくれる非同期処理を作成するときには
なんらかのループ処理が必要になる
ただ、サンプルレベルのプログラムだとそこまで実装をしている例は冗長なので
書いている人が少ないので、実用的なアプリケーションのソースコードとかを読ま
ないとループ型の非同期処理って見かけないだけだと思うけど
0972デフォルトの名無しさん (ワッチョイ a302-crVl)
垢版 |
2020/05/26(火) 22:53:49.21ID:nfOZPr0+0
連投すみません
ローカル変数は水色、外のフィールド変数は白であったはずがローカル変数も白になっているなど、関数の色以外にも色々変わってしまったようです・・・。
すごく見づらいのですがこれは更新時にテーマの設定ファイルか何かが破損してしまったのでしょうか?
0973デフォルトの名無しさん (ワッチョイ a302-crVl)
垢版 |
2020/05/26(火) 23:13:17.59ID:nfOZPr0+0
度々すみません、自己解決しました。
オプション -> テキストエディタ -> C# -> 詳細 -> エディターの配色をVisual Studio 2019にしたら元に戻りました。
アプデを行ったらなぜかエディターの配色がVisual Studio 2017になっていたようです
0976デフォルトの名無しさん (ワッチョイ da89-crVl)
垢版 |
2020/05/26(火) 23:29:37.40ID:pUNOqgdh0
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
0980デフォルトの名無しさん (ワッチョイ 1389-moxv)
垢版 |
2020/05/27(水) 00:07:17.22ID:Pggemlyq0
>>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}");
}
0984デフォルトの名無しさん (ワッチョイ f101-IvHb)
垢版 |
2020/05/27(水) 07:23:43.27ID:Bvk+i7ky0
学校でCを習っていながら実務ではjavaとC#しかやったことがありません
お陰でポインタとか実務で使ったことが無いのですが、ポインタの考えを活用するシュチュエーションはC#開発を進めると出てくるでしょうか?
0994デフォルトの名無しさん (ワッチョイ 2b2c-NZk0)
垢版 |
2020/05/27(水) 10:18:24.20ID:wHIUQvvs0
-----------------------------------------
!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
0995デフォルトの名無しさん (ワッチョイ 9394-J1D8)
垢版 |
2020/05/27(水) 10:49:27.10ID:n9K/Qc/t0
先生!

MFCのAfxBeginThreadでUARTの通信スレッド起動していましたが、C#だとどうやるのですか?

スレッドは外部変数でループを抜けて終了する仕様でループ内は受信したデータをファイルにロギングするだけです。ループ内はSleep(1)で若干負荷を下げてます。
0996デフォルトの名無しさん (アウアウウー Sac5-LWf4)
垢版 |
2020/05/27(水) 11:46:42.78ID:VAOyF+uoa
>>995
ループでも別にいいと思うけど、ポーリングなら素直にタイマー使った方が簡単じゃないかな
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 98日 0時間 53分 13秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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