C#, C♯, C#相談室 Part94
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん (ワッチョイ 935f-5Uxj)
垢版 |
2019/03/20(水) 18:57:36.47ID:ZZcTomnN0
!extend:checked:vvvvv:1000:512
■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/

■コードを貼る場合はこちら
http://ideone.com/

■前スレ
C#, C♯, C#相談室 Part93
http://mevius.5ch.net/test/read.cgi/tech/1492818720/

■次スレは>>970が建てる事。
建てられない場合は他を指定する事。
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
0003デフォルトの名無しさん (ワッチョイ b35f-5Uxj)
垢版 |
2019/03/20(水) 19:08:02.73ID:ZZcTomnN0
■過去スレ
C#, C♯, C#相談室 Part90
http://echo.2ch.net/test/read.cgi/tech/1455160063/
C#, C♯, C#相談室 Part91
http://echo.2ch.net/test/read.cgi/tech/1467142749/
C#, C♯, C#相談室 Part91 (実質Part92)
http://echo.2ch.net/test/read.cgi/tech/1467211515/
C#, C♯, C#相談室 Part92 (実質Part93)
http://echo.2ch.net/test/read.cgi/tech/1485589613/
C#, C♯, C#相談室 Part93 (実質Part94)
http://mevius.5ch.net/test/read.cgi/tech/1492818720/

>>1
ここは、実質Part95だったorz
0006デフォルトの名無しさん (ワッチョイ 237d-KxX0)
垢版 |
2019/04/25(木) 12:02:26.84ID:4R4XZvlv0
C#でセレニウムにチャレンジしています。
Chromeを起動すると「Chromeは自動テスト ソフトウェアによって制御されています」と
メッセージが表示されてうざいです。

これを非表示にする方法はないでしょうか?
0009デフォルトの名無しさん (アウウィフ FFe9-8H9x)
垢版 |
2020/04/06(月) 10:14:35.66ID:TxMJ3ToxF
質問です
C# の struct で
引数無しのデフォルトコンストラクタを上書きできないのはなぜでしょう?
回避方法はありますか?
public struct Hoge {
public int a;
public int b;
public Hoge() { this.a = 123; this.b = 456; }
}
みたいなのがやりたいです
0010デフォルトの名無しさん (ワッチョイ 233e-8H9x)
垢版 |
2020/04/06(月) 10:39:04.32ID:dJUJ6mUM0
public struct Hoge
{
public int a = 123;
public int b = 456;
}
でだめ?
0011デフォルトの名無しさん (アウウィフ FFe9-8H9x)
垢版 |
2020/04/06(月) 10:39:59.95ID:TxMJ3ToxF
コンパイルエラーになります
0012デフォルトの名無しさん (ワッチョイ 233e-8H9x)
垢版 |
2020/04/06(月) 10:45:59.32ID:dJUJ6mUM0
残念です。あきらめてclassにしませう。
0013デフォルトの名無しさん (ワッチョイ 0d0c-bVUD)
垢版 |
2020/04/06(月) 10:58:20.70ID:sF8ihuq40
暗黙的な既定のコンストラクタが挿入されないようにとのC#コンパイラの最適化の都合
特に回避策はない

標準ライブラリで

struct Vector3 {
 ...
 public static Vector3 Up = new Vector3(0, 1, 0);
}

みたいなのはある
0014デフォルトの名無しさん (アウウィフ FFe9-8H9x)
垢版 |
2020/04/06(月) 12:06:20.02ID:TxMJ3ToxF
レスくれたひととワッチョイ似てるけど別人です念のため
0015デフォルトの名無しさん (アウウィフ FFe9-8H9x)
垢版 |
2020/04/06(月) 12:11:49.60ID:TxMJ3ToxF
>>13
あまり有難みが無いですが・・・とりあえずレスくれたみなさんありがとう
class にしたくない理由は struct のネストをしたいのと
そのとき struct を Marshal.StructureToPtr して使いたいのですが
ネストの内側に class が含まれてると not blittable とか出て困ってるんです
001915 (アウウィフ FFe9-8H9x)
垢版 |
2020/04/06(月) 15:36:35.10ID:TxMJ3ToxF
すみません間違いました
not blittable が出るのは
struct s2 の中に class c1 があるとして
GCHandle h = GCHandle.Alloc(s2, GCHandleType.Pinned);
IntPtr ptr = hndl.AddrOfPinnedObject();
// ptr を利用
h.Free();

ちなみに
struct s2 の中に struct s1 があるとして
同じことをしたときは問題無いです
0020デフォルトの名無しさん (アウウィフ FFe9-8H9x)
垢版 |
2020/04/06(月) 15:40:47.44ID:TxMJ3ToxF
>>18
struct を定義するときにメンバに class があるとき
その class を blittable にする方法を知りたいです
0021デフォルトの名無しさん (ワッチョイ 0d0c-bVUD)
垢版 |
2020/04/06(月) 16:24:25.71ID:sF8ihuq40
そのclassの内容によるとしか…
無制限にマーシャリングできるわけでもないし
classのメンバがblittableならそのままstructにすりゃいいだけだけど

参考になるか知らんがstringを含む場合

[StructLayout(LayoutKind.Sequential)]
struct Foo {
 public int id;
 [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
 public string name;
}

class Program {
 static void Main(string[] args) {
 var sizeInBytes = Marshal.SizeOf<Foo>();
 Console.WriteLine($"SizeOf={sizeInBytes}");

 var coTaskMem = Marshal.AllocCoTaskMem(sizeInBytes);

 var foo = Marshal.PtrToStructure<Foo>(coTaskMem);

 foo.name = "John";
 Console.WriteLine(foo.name);

 Marshal.DestroyStructure<Foo>(coTaskMem);

 Marshal.FreeCoTaskMem(coTaskMem);
 }
}
0022デフォルトの名無しさん (アウウィフ FFe9-8H9x)
垢版 |
2020/04/06(月) 16:44:22.28ID:TxMJ3ToxF
>>21
そもそも内側は struct で充分なんですが
初期値を入れたいのでそのためには class でないといけないとしたら
class にするとエラーになるのでやっぱり困るっていう話です
struct でデフォルト値入れられないと割り切れば済む話です
0023デフォルトの名無しさん (ワッチョイ cb84-S3x4)
垢版 |
2020/04/06(月) 18:03:23.76ID:7X8pPa4E0
2度手間っていうか面倒くさいけどStructureToPtrでバイトストリームに一括で変換するのが
目的ならば、外に見せる部分はclassで作っておいて中にstructを定義する
structの要素にはプロパティでget/setする初期値はclassのコンストラクタで設定
classにバイトストリームを取り出す(StructureToPtrに絡むロジック)メソッドかプロパティを
定義するみたいなのじゃダメなのかな
class point {
 public point () {
  x = 0;
  y = 0;
 }

 private _point _Struct;
 public int x {
  get { return _Struct.x; }
  set { _Struct.x = value; }
 }
 public int y {
  get { return _Struct.y; }
  set { _Struct.y = value; }
 }
 public byte[] bytestream {
  get { return structToPtrFunc(_Struct); }//メソッドは別途作成
 }

 [StructLayout(LayoutKind.Sequential)]
 private struct _point {
  int x;
  int y;
 }
}
0024デフォルトの名無しさん (エムゾネ FF43-8H9x)
垢版 |
2020/04/07(火) 10:26:44.15ID:KScFPzRrF
むしろ StructureToPtr を使いたくないっていう話です
やりたいのはこっちです
GCHandle h = GCHandle.Alloc(s, GCHandleType.Pinned);
IntPtr ptr = h.AddrOfPinnedObject();
// ptr 操作
h.Free();
途中のレスで一回変な事を書いてしまったので混乱させてごめんなさい
0025デフォルトの名無しさん (エムゾネ FF43-8H9x)
垢版 |
2020/04/07(火) 10:30:31.32ID:KScFPzRrF
意図は「無駄なコピーを極力避けたい」です
0027デフォルトの名無しさん (ワッチョイ 0d0c-bVUD)
垢版 |
2020/04/07(火) 13:31:26.68ID:10XGXpve0
意図がそれならそもそもなんで親に値型使ってんのってところまで後退しちゃうぞ
値型にGCHandleのピン付けってそこだけ見ると意味不明だし
省略している「ptr操作」の内容次第では初っ端からアプローチを間違えてる可能性がある
0028デフォルトの名無しさん (ワッチョイ 2b7c-Wy2p)
垢版 |
2020/04/07(火) 13:56:15.48ID:xToLYP7L0
Cの構造体って構造体の中に別の構造体入れてもコピーが発生する訳じゃない
(子の構造体をいちいち作る訳じゃないから)
C#をCと同じと思わない方が良い
0029デフォルトの名無しさん (ワッチョイ 0d61-8D+7)
垢版 |
2020/04/07(火) 18:25:34.04ID:hoGla/3+0
>>28
C#の場合、classは、Heapに実態を確保して変数は参照型で、
structは、スタックなどに実態を確保して、変数は値型だと
聞きました。
C++は、strucとclassは、protected/public などのaccess control以外に
違いが無いこととは対照的です。
というわけで、C#の場合でも、structに関しては別のstructの中に入れた場合
は、C++と同じような動作なのではないかと思われます。
0031デフォルトの名無しさん (オッペケ Sr8d-Cmpq)
垢版 |
2020/05/27(水) 18:07:50.45ID:LUVXPnpcr
質問いいですか?
C#のアセンブリの読み込みってどういう手順で行われてるんですか?
同じバージョンの.net core から.net coreを呼び出してるのにTypeIntializationExceptionが発生します
たぶん正しいアセンブリが読み込めてないのだと思うのですが、アセンブリの読み込みタイミングやバージョンを指定することは可能なのでしょうか
0032デフォルトの名無しさん (オッペケ Sr8d-Cmpq)
垢版 |
2020/05/27(水) 18:29:21.50ID:LUVXPnpcr
上のお話見てると突き詰めれば値型と参照型の定義の問題になってきそう
C#の構造体は中に値型以外を詰め込むとその部分はCレベルで言うポインタのポインタを保持する形になってコピー時の挙動以外はclassと大差ないものになっちゃうよね
ポインタのポインタの値型だと言えばそうなのかもしれないけど
0034デフォルトの名無しさん (ワッチョイ 5350-Cmpq)
垢版 |
2020/05/27(水) 23:51:33.69ID:LGEhqROa0
参照してるdllにエントリポイントがないと言われるだけでそれ以上検索してもなにも出てこないです

こう聞いた方がいいのかもしれないです
.net frameworkの時は自前でシステムのアセンブリ参照できましたが
.net coreにも似たような仕組みはあるのでしょうか

こういうアセンブリ関係の問題は.net frameworkの時は自前で参照加えたらできたんですけど
.net coreになってフレームワーク二つしか選択肢がなくなって細かい参照が出来なくなってますがそれはどこがどういう風に解決してるのでしょうか?

特定のライブラリが使いたいというよりそこら辺の内部仕様が知りたいです
0035デフォルトの名無しさん (ワッチョイ 5350-Cmpq)
垢版 |
2020/05/27(水) 23:59:10.55ID:LGEhqROa0
あ、アセンブリが読み込めてないと思った一番の理由はdllでなくプロジェクトにcsで組み込んだらちゃんと動いたからです
そういう意味で言語レベルでのミスはないです
0036デフォルトの名無しさん (アウアウエー Sa23-1zQY)
垢版 |
2020/05/28(木) 11:28:38.46ID:vYrFHFhya
csc -reference:(.NetCoreのpath) hoge.cs でいけるよ
0037デフォルトの名無しさん (ワッチョイ 99da-e++8)
垢版 |
2020/08/09(日) 14:22:49.34ID:wMn4aE4e0
WindowsFormで写真データ取り込みを作ってるんですが、
DriveInfo.GetDrives()してもWindows10に接続して認証したあとの
iPhoneのドライブが読み取れず・・・
どうにか拾えないもんでしょうか?
0040デフォルトの名無しさん (スッップ Sd33-KRae)
垢版 |
2020/08/10(月) 07:48:42.24ID:sJEhM+RBd
>>38 >>39
ありがとうございます
よく調べてみます
0044デフォルトの名無しさん (ワッチョイ e52f-++7W)
垢版 |
2020/08/16(日) 15:05:57.24ID:fvXawAJc0
機器構成の設定を記載したconfigファイルをアプリ上で作成して、
アプリ実行時にconfigの内容を変数に読み込むことを行おうと思ってます。

configファイルって普通どんなふうに書くんだろうと思って、
あるアプリのconfigファイルを覗いてみたところ下のような感じになっていました。

[Config]
StartUpLeft=-2147483648
StartUpTop=-2147483648
StartUpWidth=640
StartUpHeight=480
SaveWindowPosSize=1
SaveWindowRectLeft=597
SaveWindowRectRight=3645
SaveWindowRectTop=1256
SaveWindowRectBottom=3436
SaveWindowMaximize=0

このテキストファイルを
string line = sr.ReadLine();
// 読み込んだ一行をカンマ毎に分けて配列に格納する
string[] values = line.Split('=');

とすると偶数のvaluesに値が入ってるからこれを使用するみたいな感じでOK?
〇〇できちっと書けやぁ!みたいな形式があったら教えて下さい。
0046デフォルトの名無しさん (ワッチョイ e52f-++7W)
垢版 |
2020/08/16(日) 15:30:58.63ID:fvXawAJc0
>>45
ググってみましたが難しい・・・。

アプリ内で変数を10個ぐらいもっていて
int hoge1=100
int hoge2=12


これをテキストファイルに保存し、必要なときに
int hoge1=100
int hoge2=12
にアプリ内で戻したいのですが、簡単に実現出来る方法があればいいなと思ったのですが・・・。
0047デフォルトの名無しさん (アウウィフ FFa5-jwrZ)
垢版 |
2020/08/16(日) 15:39:24.55ID:43uVw8aVF
msgpack
0048デフォルトの名無しさん (アウウィフ FFa5-jwrZ)
垢版 |
2020/08/16(日) 15:39:24.66ID:43uVw8aVF
msgpack
0049デフォルトの名無しさん (ワッチョイ 4201-eTOa)
垢版 |
2020/08/16(日) 15:59:09.65ID:7n2hwSPz0
>>44
その形式は ini ファイルなので C# ini ファイルでググれば事例がいっぱい出てくるよ
基本はWin32APIのGetPrivateProfileString( )とかを使う
もし設定ファイルの形式をこれから決められるならjsonおすすめ
DataContractJsonSerializerクラスを使えば読み書きも簡単だし
0051デフォルトの名無しさん (アウウィフ FFa5-jwrZ)
垢版 |
2020/08/16(日) 18:15:38.13ID:43uVw8aVF
SQLiteも良いぞ
0053デフォルトの名無しさん (ワッチョイ e52f-++7W)
垢版 |
2020/08/16(日) 22:09:22.28ID:fvXawAJc0
なんかどんどん難しくなってきました。
最近だxmlで書くのがデフォルトなんでしょうか・・・。
iniで書くのも結構荷が重い、気合い入れて勉強するべきか・・・。
0054デフォルトの名無しさん (ワッチョイ 426a-p5K4)
垢版 |
2020/08/16(日) 22:11:13.68ID:k/QA8A3q0
>>53
>52 でggr
0058デフォルトの名無しさん (ワッチョイ 7197-9ujE)
垢版 |
2020/08/17(月) 00:14:03.00ID:FrBqpQ/k0
xmlはめんどくさすぎるから、DTDでちゃんと定義したいとかじゃなかったら使いたくないな。もちろんケースバイケースなのはそうだけど。
改行区切り、タブ区切りとかもまだまだ場合によっては使うしね。
0059デフォルトの名無しさん (ワッチョイ e5da-QFj7)
垢版 |
2020/08/17(月) 01:29:02.95ID:U9ZmQUIp0
カンマ区切りと固定長のまざった独自糞フォーマットでのIO書いたことはあるけど、自由に出来る時はjsonかxml
大体はjsonだけど、きちんと定義したデータ使いたいときにRelaxNGで定義してXMLで書いたことはある。
0060デフォルトの名無しさん (ワッチョイ dd5f-c+0i)
垢版 |
2020/08/17(月) 10:22:34.64ID:L1BKvkJB0
些細な枝葉で悩む時間あったら
本体のプログラムで悩め
0068デフォルトの名無しさん (ワッチョイ 1f5f-YpYZ)
垢版 |
2020/08/20(木) 00:21:28.68ID:r1uYCcYS0
ちょっとくだらない質問で申し訳ないんだけど
構造体の定義のソースってどうしてる?

クラス内に通信電文用の構造体をいっぱい作ったのだけど
ソースがでかくなっちゃうからpartial使ってわけた方がいいのか
あくまで一個のソース内にまとめるか・・・
0071デフォルトの名無しさん (エムゾネ FF9f-fHWV)
垢版 |
2020/08/20(木) 11:24:45.34ID:RX/3qqm6F
設計を見直す
0072デフォルトの名無しさん (ワッチョイ 1f02-WzHs)
垢版 |
2020/08/20(木) 19:14:02.34ID:3p9OuWNz0
分割しようかと迷う規模なら分割もありだと思う。
ベース部分は独立させて、機能毎に実装ファイルの頭に使用する下位レベルの電文を定義する。
電文は全部まとめるか?分割するか?ケースバイケースだね。
0074デフォルトの名無しさん (ワッチョイ 7f6a-YpYZ)
垢版 |
2020/08/21(金) 00:57:13.38ID:Gtp12ERl0
>>68
クラス内に作らないで独立させれば良いのでは?
0076デフォルトの名無しさん (ワッチョイ ff8f-YpYZ)
垢版 |
2020/08/24(月) 21:06:09.96ID:RikpSc+F0
xamarin でTDDを勉強してるんだけど、

public event PropertyChangedEventHandler PropertyChanged;

この PropertyChanged 自体がnullになって例外で終わるのって
どういうパターンがあるんだろう・・・。

勉強したいことと全く別のところで長期足止め。わっけわからん状態。
0080デフォルトの名無しさん (エムゾネ FF9f-fHWV)
垢版 |
2020/08/25(火) 10:33:43.97ID:Zt9gBA2MF
ここで質問するより
直接ちょまどにツイートしろって意味かな?
返事来るかどうか知らんけど
0081デフォルトの名無しさん (ワッチョイ ae8f-1etN)
垢版 |
2020/08/26(水) 15:08:57.61ID:7Xms6Gwm0
>>78
ありがとう。どうやら「どっかが+=してくれる」っていう前提なんだね、これ。

PropertyChanged?.invoke(this, e);

で呼び出したら動いた。現役じゃなくなって長いもんで(趣味のプログラム)、
このへんの書き方に苦労するなあ。
0085デフォルトの名無しさん (ワッチョイ 452f-JI6e)
垢版 |
2020/08/27(木) 23:21:35.12ID:dU9vSxaE0
フォームアプリで
フォームAで検査をして、検査終了後に

「データを記録しますか?」
「はい」「いいえ」
というウインドウを表示して、
「はい」ならデータ記録
「いいえ」ならデータ廃棄

としたいです。
0086デフォルトの名無しさん (ワッチョイ 452f-JI6e)
垢版 |
2020/08/27(木) 23:23:39.98ID:dU9vSxaE0
データはフォームAにあるので、

1. フォームAからフォームBを開く
2. フォームBは「はい」「いいえ」を戻り値としてAに渡す
3. フォームAでデータ記録、データ廃棄の処理を行う

みたいな処理でいいのでしょうか?
それとももっとよいやり方がありますか?
0088デフォルトの名無しさん (ワッチョイ 452f-JI6e)
垢版 |
2020/08/28(金) 00:27:25.73ID:ljA+yCxF0
ありがとうございます。
これですね。

なんかフォーム新たに作るとかこんなめんどくさいことしなきゃいけないのか?
と疑問に思ってたんですが、聞いてよかったです。
ありがとうございます。
明日実装してみます。
0090デフォルトの名無しさん (ワッチョイ 7f2f-Q6Op)
垢版 |
2020/09/02(水) 22:47:24.65ID:uEUYmCsp0
C#からpythonのプログラムをコマンドライン引数hoge付きで実行したのですが、

System.Diagnostics.Process.Start("python.exe", @"""L:\main.py hoge""")

とやっても実行できません。
なにかより方法ないでしょうか?
0096デフォルトの名無しさん (ワッチョイ 0701-3NJ+)
垢版 |
2020/09/04(金) 01:43:56.80ID:bkNZTAxK0
var sb = new StringBuilder();
var c = 'a';
while (true)
sb.Append(c);

これで一番下の行に破棄'_'を使用っていうVSによるヒントが出てくるんだけど、
こういう場合の破棄って使用する場合としない場合でどういう違いがあるの?
0097デフォルトの名無しさん (ワッチョイ 0701-XrX+)
垢版 |
2020/09/04(金) 03:29:44.58ID:TqZk/BuV0
>>96
破棄は、未割り当ての変数と同等です。つまり、値がありません。
破棄変数は 1 つのみであり、破棄変数には記憶域も割り当てられないため、破棄を使用するとメモリの割り当てを減らすことができます。
また、コードの意図がわかりやすくなるため、読みやすさと保守性が向上します。
0104デフォルトの名無しさん (ワッチョイ 11da-K//f)
垢版 |
2020/09/13(日) 12:05:22.97ID:/5CZgoyc0
LINQの話題になってるから聞きたいんですが、LINQって結構遅い?
ベンチマークとって襲いって主張してるブログとかはあるけど、実業務で遅さを実感する事ってどのくらいある?
0105デフォルトの名無しさん (ワッチョイ 11da-SlgL)
垢版 |
2020/09/13(日) 12:15:27.66ID:pEIp8weP0
LINQ使わないで書くよりも遅いことは遅いんだけど、経験的にはあんまり問題にはならなかった
実際に使ってみてどうしてもLINQ使ってる辺りでネックになるようなら、
そこだけ書き直す感じでいいと思う
0106デフォルトの名無しさん (ワッチョイ 3dad-Q/Xd)
垢版 |
2020/09/13(日) 12:21:40.35ID:tOkSvJ4p0
Linq使ったほうが楽に高速化できることもあるし、場合場合じゃないかな。
PLINQは良くコア数指定せずにぶん回して「遅い」って言ってる奴いるけど、コア数指定したら割と良い線行く。
0107デフォルトの名無しさん (ワッチョイ 6663-9dCp)
垢版 |
2020/09/13(日) 15:15:56.81ID:SPHVq8sr0
処理速度が求められるような部分だとネックになってると感じることもある
シミュレーションみたいなのね
そういうの以外では全く気にならない
どうせ処理速度より通信やファイル読み書きのほうが圧倒的に時間かかるから
0114デフォルトの名無しさん (ワッチョイ 1ee9-S6Ic)
垢版 |
2020/09/26(土) 09:10:33.60ID:z7P86v//0
ほぼC#経験しか無いのですが、最近iPhoneでアプリ作りにトライして貰いたいと言われました
経験的にC#とXamarinで作れたらと思うのですが、実用に耐えるものなのでしょうか?
王道のSwiftを覚えるべきでしょうか
オススメをお聞きしたいです
0116デフォルトの名無しさん (ワッチョイ 1663-YB2V)
垢版 |
2020/09/26(土) 09:27:09.80ID:jvAfHmw30
産まれながらに豪運をお持ちであるか
最終的に開発するアプリがごく小規模でないのなら、Swiftを薦めるかなあ

ネイティブのクロスプラットフォームフレームワークって機嫌よく動いているうちはいいんだけど
いざトラブルが起きた時、フレームワークそのものの知識と目的のプラットフォームの知識、両方がないと問題を解決できないのね
0117デフォルトの名無しさん (スププ Sd32-D1lY)
垢版 |
2020/09/26(土) 10:28:09.86ID:zTe0m+jEd
iOSの事はあんまりわからんけど、Androidの場合でも、結局Androidの記事を読むことになるから、ネイティブの知識は必要になるよ。
だから逆にネイティブの知識で何とかなるXamarinは好きなんだけど。

ネイティブに対してLinqが書けたり、C#のライブラリが使えるメリットを感じられなければ、ネイティブの方が良いと思う。
俺はサーバ側もc#で済ますときに圧倒的に楽だし、Linqめっちゃ使うし、LiteDBとか使いたいからXamarinは割と選択肢にしてる。

気持ち悪いとか、信者がどうとかそういう話に持ってくのはやめてほしいわ。
0124デフォルトの名無しさん (ワッチョイ 8224-3PYq)
垢版 |
2020/10/27(火) 11:24:09.31ID:1KKT1q6l0
NAudio.Lameがサンプルレート44100&16bit以外のwavをmp3に変換できないのってなんでなの?
lame_enc.dllのラッパー作ったらこっちではどんな形式のwavでも変換出来たからまぁ問題は解決してるんだけど上記じゃできない理由が知りたい
0125デフォルトの名無しさん (ワッチョイ b5ba-QVGU)
垢版 |
2020/11/10(火) 20:29:35.95ID:CPbRFFCx0
Visual Studio インストールできない環境なんですが、csc でコンパイルはできます。
using SpeechLib
を使うためにはどのファイルを /r: で指定すればいいんですか? Microsoft スピーチ SDK はインストールされています。
0128デフォルトの名無しさん (ワイーワ2 FF93-NSHw)
垢版 |
2020/11/11(水) 10:02:20.87ID:tAzuyT8UF
>125
https://rti7743.?diary.org/entry/20111215/1323965483
0129125 (ワッチョイ 2375-WW/G)
垢版 |
2020/11/12(木) 20:06:56.40ID:uxm21n/v0
VisualStudio が大きすぎて重すぎてインストールさえできないんです ( ノД`)…
0136125 (ワッチョイ 0f01-l3pW)
垢版 |
2020/12/02(水) 19:05:55.25ID:Ve9XOoG60
VisualStudio 2019 入れても SpeechLib 使えんかった。 まほろばサイトの通りにしてもエラーで .exe 作れなかった。
まほろば の環境に合わせて VisualStudio 2010 入れるしかないのか。
VS2010 手に入れられるのか? メンドクセー
0139デフォルトの名無しさん (ワッチョイ be2c-6v7E)
垢版 |
2020/12/19(土) 18:10:05.63ID:c6eQkowx0
> The initial content of the destination span passed to action is undefined.
> Therefore, it is the delegate's responsibility to ensure that
> every element of the span is assigned. Otherwise,
> the resulting string could contain random characters.
0140デフォルトの名無しさん (ワッチョイ 7b24-+M4v)
垢版 |
2020/12/19(土) 18:23:51.61ID:+WDUx37o0
>>139
そう書いてる割には渡されたSpan<char>をループで回してみると0オンリーなんだよね
これはプログラム立ち上げたばかりで余ってるヒープから確保されたものではなく、メモリ確保とセットになってるからってことかな?
0146デフォルトの名無しさん (ワッチョイ 6a6a-22vh)
垢版 |
2020/12/21(月) 03:03:30.13ID:UGhjbn3Q0
ソフトウェア開発において絶対正義は絶対存在しないので無理です
そのマンガのキャラみたいな台詞は顧客に向かって言うべき
0148デフォルトの名無しさん (ワッチョイ 9adc-HqC+)
垢版 |
2020/12/30(水) 05:03:29.28ID:6ulHLOTc0
List<T>で要素数30億個が必要になった
しかしList<T>のインデックスはint32なので普通には無理
サードパーティ製のLargeList<T>を使えば80億までは行けると聞いて試したらList<T>の倍以上の時間がかかるから使えない
なんかいい手がないですかね?
0151デフォルトの名無しさん (ワッチョイ 2702-fuHL)
垢版 |
2020/12/30(水) 13:39:08.37ID:2ar4b/sH0
30億のインデックスが必要という案件自体に
なんか無理がありそうな気がしますがね…

データが固定長ならば
30億xデータ長のファイル用意して
ランダムアクセスすれば比較的容易かも

キーが1〜30億の間の数値というだけで、
データ個数がそこまで無いならDictionary

データ30億個ガチで必要かつ可変長やソートが必要なら
LiteDBみたいな外部DB使うとかしないと現実的じゃない
0154デフォルトの名無しさん (ワッチョイ 3d24-2oIo)
垢版 |
2021/02/01(月) 10:01:45.54ID:f9q1oLiO0
System.Runtime.Intrinsics.X86っていう面白そうな標準ライブラリ見つけたが
ストリーミングSIMD拡張命令を扱う割にはVector256とかに吐き出してレジスタだけで済ませられないからパフォーマンス目的で使える訳じゃなさそうだな
0156デフォルトの名無しさん (ワッチョイ 3d24-2oIo)
垢版 |
2021/02/02(火) 23:00:30.89ID:uFATDe770
>>155
具体的にどういう使い道ありそう?
ポインタからロード → ポインタへストア、これが出来ればコピーを4倍速で出来そうなもんだけど
この間にstructへ吐き出し(スタックへ書き込み)が混じると利点が台無しになってないか?
0161デフォルトの名無しさん (ワッチョイ d724-/hxM)
垢版 |
2021/02/07(日) 16:04:38.90ID:/dTzrpKy0
西村博之 「10年くらい前にMSがC#っていう言語をリリースしたんですよ。その時は「これからはC#の時代だ!」ってみんな言ってたんでけど今はもう誰も使ってないんすよねw」

元WEB系から見たらこんな印象なんだな
文字列の関係からweb系からは程遠い言語ではあるけど、そろそろutf8string実装して見返してもらいたいわ
0166デフォルトの名無しさん (ワッチョイ b712-RXZG)
垢版 |
2021/02/07(日) 19:54:19.46ID:HMKjqa1L0
C#がリリースされたのは約20年前
つまり西村の時系列が10年ズレてると考えたら、2010年前後のC#はデスクトップ開発専用言語でありスマホWeb時代の到来によりオワコンって評価だったからそういう認識になるのも分かる
実際はその後マルチプラットフォーム対応やUnityでの採用により今では上位で健闘してるが
0167デフォルトの名無しさん (スップ Sd3f-QgsX)
垢版 |
2021/02/07(日) 19:59:50.09ID:jfqlIQAhd
Web系の人は世の中にWeb系以外存在しないと思ってるからね
HTML、CSS、JS、PHPを勉強してプログラマー転職とか言ってる胡散臭いイメージの方が強いんだけど
0169デフォルトの名無しさん (ササクッテロラ Sp0b-mTpx)
垢版 |
2021/02/08(月) 18:03:29.04ID:edkkLpnyp
どんな変遷だろうが知りもしないことをのたまったのは変わらんのだからフォローにならんぞ
0171デフォルトの名無しさん (エムゾネ FF32-olyV)
垢版 |
2021/02/12(金) 13:33:55.52ID:x9NfpsA7F
思えば遠くへ来たもんだ
0172デフォルトの名無しさん (オッペケ Src7-nDzl)
垢版 |
2021/02/17(水) 03:49:24.30ID:EDQ/KEe/r
TSは型システムが自由度高くて契約プログラミングの立場から見ると魅力的なんだが、
いかんせん記法が複雑すぎて黒魔術化するケースがしばしばある

その点C#は見た目素直で扱いやすい
でも判別共用体と型クラスははよう実装してくれ
0174デフォルトの名無しさん (ワッチョイ 9293-KPUJ)
垢版 |
2021/02/17(水) 21:58:57.60ID:u6Au0MiC0
null許容参照型とオブジェクト初期化子って相性悪すぎでは?
昔のコードをコンストラクタ初期化に変更するのめんどくさい
0175デフォルトの名無しさん (スッップ Sd32-Xfe6)
垢版 |
2021/02/17(水) 22:22:00.78ID:67UeIi3Dd
null許容参照型自体が微妙

null許容参照型の動機は立派だし尤もだと思うが既存の言語仕様やコードに馴染まない
導入するならC#8.0未満との互換性を切り捨てるくらいの覚悟でやるべきだった
0177デフォルトの名無しさん (ワッチョイ a3e0-CP8L)
垢版 |
2021/02/18(木) 23:08:33.94ID:2Lyq02j+0
この言語進化もしつつ、後方互換も残しつつよく頑張ってきたけどそろそろ限界なのかもね
ヘルスバーグさんがtsの方いっちゃってからはどういう人が方針決定したりしてるんだろう。
0181デフォルトの名無しさん (ワッチョイ 73e0-7Kgp)
垢版 |
2021/02/19(金) 23:50:43.94ID:0rOHF09p0
>>180
なんか君と絡むとめちゃくちゃめんどくさそうな予感

この言語が好きなのは分かる。俺もこの言語が好きで付き合いも長い。
しかし、言語は宗教ではない。
長所も短所もあるし、作るものによって合う合わないもある。
そして大抵の場合新しく出た言語の方が優れている。
ゲームを除いていまからC#学ぶ人は少ないんじゃないかな…
最盛期は過ぎてるよ。
0182デフォルトの名無しさん (ワッチョイ ff63-bUHw)
垢版 |
2021/02/20(土) 00:36:53.09ID:AS/xJbvA0
そら後から劣化版なんて出しても意味ないんだから基本的には優れてるだろ
ただ新しく出された言語が広まるかはわからんし、何が広まるかの予測も難しい
ちょいと昔にはスクリプト言語は死んで関数型言語の時代になるって主張はよく見た気がするけど未だにそんな時代来そうにない
現状、ある程度広まっているものを学ぶ価値は十分にあるでしょ
完全新規ならjsやpythonでいいんじゃね?っていうのはわかるがC#は無いと強くいい切るのはまだ早いように感じる
0183デフォルトの名無しさん (ワッチョイ ff79-VKJl)
垢版 |
2021/02/20(土) 01:41:47.61ID:gXTKHnYD0
> 完全新規ならjsやpythonでいいんじゃね?っていうのはわかるが
それはわからない
スクリプト言語では代替にならないし後から出た言語でもない

後方互換に限界が見えるだけであって
C#が限界なんて主張してる奴は何も分かってない
0184デフォルトの名無しさん (ワッチョイ ff63-bUHw)
垢版 |
2021/02/20(土) 02:35:06.99ID:AS/xJbvA0
新規にプログラムを学習する人の話なのに何の代替が必要なの?
C#の代わりに学ぶべき言語の話なんかしてないぞ
後から出た言語を学ぶべきなんて主張もしてない
0185デフォルトの名無しさん (ワッチョイ ff01-pEhb)
垢版 |
2021/02/20(土) 02:37:36.26ID:56yjs2OO0
JSやPythonに比べるとC#のほうが新しいし高機能だからね
もう少し新しいSwift、Rust、TypeScriptあたりと比べてみるといいと思う
Swiftはいろいろ評判悪いところあるけど言語の機能としては学ぶべきところがたくさんある
.NET言語ならF#
0188デフォルトの名無しさん (ブーイモ MMff-Dcdc)
垢版 |
2021/02/20(土) 06:23:01.93ID:IPsKxWQ9M
文字で記述するのを数式だけにして
あとポトペタとかラダーブロックとかで組み上げるようには出来んかね?

言語で思考する人が作れば、どうしても文法ありきのものしか生まれない
0189デフォルトの名無しさん (ワッチョイ e377-n1zC)
垢版 |
2021/02/20(土) 06:37:41.41ID:L4oaJEJs0
組込み機器の言語は未だにCがメチャ多いな。
ルネサスの開発環境見ればわかる。
組込み機器の操作パネルにラズパイを良く使うが、pythonだな。
windowsで操作パネルやるときはC#にするわ。
0192デフォルトの名無しさん (ワッチョイ cf2c-QclQ)
垢版 |
2021/02/20(土) 07:31:51.35ID:CT8193ch0
mruby の本が出た

Webで使えるmrubyシステムプログラミング入門、近藤宇智朗、2020/11

宇宙開発などの組み込み用、MicroPython, Lua, Squirrel の代替になる。
Ubuntu 18.04, C99 対応

人工衛星イザナギ・イザナミで、使っている
0195デフォルトの名無しさん (テテンテンテン MM7f-VXi+)
垢版 |
2021/02/20(土) 08:14:24.38ID:HML11/V9M
KotlinのC#版作ってほしいなあ
C#と100%相互運用可能で、変数の再代入可否がvarとvalで書き分けできて、
レガシーになってしまったC#の文法(delegateとかC的なswitchとか)を全部そぎ落としたようなやつ
ネーミングは・・・K#とか?
0198デフォルトの名無しさん (ワッチョイ ff6a-W5tZ)
垢版 |
2021/02/20(土) 11:19:00.18ID:ocxS9ilS0
互換切るくらいだったら新言語作ってくれた方がいいな
0199デフォルトの名無しさん (ブーイモ MMff-Dcdc)
垢版 |
2021/02/20(土) 11:26:20.22ID:Bgdez4XSM
互換切られたVB6はどうなりましたか?
VB.NETやってますか?VB6続けてますか?
どっちも終わりましたね

BASICは終わったのです
0202デフォルトの名無しさん (ワッチョイ cfb5-xG0S)
垢版 |
2021/02/20(土) 11:47:47.26ID:LZqTWRBH0
>>199
VBは完全に終わればいいのにな
VBの文法が貧弱なのは公知の事実で
VB上がりのプログラマは変なクセがついてしまって
他の言語に移行したときに変なコードを書く
もちろん俺もVBで書くこともあるがマスターする気はサラサラない
10年以上前からいつか廃ると思ってるからな
去年MicrosoftがExcelでのマクロなどを
Pythonにするとかいうニュースが流れたがガセだったんかな
0208デフォルトの名無しさん (ワッチョイ 737c-e2JP)
垢版 |
2021/02/20(土) 12:43:01.20ID:ta3HMtrO0
web版のofficeのアドインはjavascriptで組むんじゃなかったっけ
C#で書いたデスクトップ版のアドインをweb版で使えるようにするにはjavascriptで書き直すしかないのかね
0217`_? (ワッチョイ cfb5-xG0S)
垢版 |
2021/02/22(月) 21:57:23.33ID:0aX736QQ0
>>213
GASでqiitaの情報見つけた、サンクスコ!

>>215
そっちのJSぢゃねーよ!!
・・・いや、無論、なんの意味かさっぱり分からんが・・・
0220デフォルトの名無しさん (ワッチョイ 8fdf-D7W+)
垢版 |
2021/02/23(火) 00:09:48.48ID:4ySKak6E0
GASはデフォルトアカウントとファイルオーナーが一致してないと開けなかったりGoogleのよくわからん仕様(しかもエラーメッセージから解決しにくい)に振り回されるんだよな

個人的にはc#でエクセルマクロをvsで開発できたら最強だと思うんですけど
0225デフォルトの名無しさん (ワッチョイ b302-lut+)
垢版 |
2021/02/23(火) 10:22:45.48ID:U81ghsh90
それ、かみ合ってない。
a) C# でマクロを作れる環境があったらいいのにな
b) セキュリティで動かんから無駄

仮定と言うか希望に対して現状を持ち出しても仕方ないだろ。
0227デフォルトの名無しさん (ワッチョイ ff6a-W5tZ)
垢版 |
2021/02/23(火) 10:34:11.67ID:ysYwoRGz0
マクロって標準関数じゃ面倒見切れないような
入力値→シート内でなにか表示、系の処理がやりたくて使うんじゃないの?
json吐くとか外部連携だからレイヤーが違うんじゃないのか
0237デフォルトの名無しさん (ワッチョイ a3ad-ajya)
垢版 |
2021/02/23(火) 14:17:07.73ID:ADOMIACK0
exeはうちひっかかるぞ。
自分でビルドしたものは自分は問題ないが、人に渡して実行させた瞬間に某セキュリティソフトが「あんまり見ないexeだけど大丈夫か?」ってダイアログ出してきて、
迷いを見せたら情シス子会社にアラートが飛んでフルスキャンさせられる。
0240デフォルトの名無しさん (ワッチョイ a3ad-ajya)
垢版 |
2021/02/23(火) 16:18:33.96ID:ADOMIACK0
>>239
予めバイナリをひとつ受け取って情シス子会社に送ってスキャン対象外にしてもらう必要がある。
そこそこの企業はこういう運用だと思うけど。
マクロからexe蹴るなんてキチガイじみた行動絶対許可下りないよ。
exeをすげ替えられたら死ぬじゃん。

マクロは比較的動く。
0244デフォルトの名無しさん (ワッチョイ ff6a-W5tZ)
垢版 |
2021/02/23(火) 20:35:16.29ID:ysYwoRGz0
もちろんそれでも、じゃなくて署名以外ないだろ確実な方法は
0247デフォルトの名無しさん (ワッチョイ a3ad-ajya)
垢版 |
2021/02/23(火) 22:51:39.61ID:ADOMIACK0
おっしゃるとおりで、否認防止、改ざん防止にはなるけど、その署名や署名されたバイナリに悪意がないかは、別途登録は必要ね。
署名元に対して完璧に信頼できるなら、署名を資産管理に登録するって方法で、ある程度面倒くささを回避できるから「それでもいい」になってる。
0250デフォルトの名無しさん (エムゾネ FF1f-pQAD)
垢版 |
2021/02/25(木) 18:42:55.23ID:rcOltu0HF
詐欺サイトも平気でhttps使うし証明書もある時代ですし
0256デフォルトの名無しさん (ワッチョイ 4301-pQAD)
垢版 |
2021/02/25(木) 20:54:55.93ID:0Aa2beUH0
セマンティックウェブが商売の邪魔だからでは?
0257デフォルトの名無しさん (ワッチョイ cfb5-xG0S)
垢版 |
2021/02/25(木) 22:38:59.01ID:6+OyJiP50
httpsを使ってる詐欺サイトの運営者はマジでタヒねばいいのに
もしエロサイト探してて詐欺サイト開いたんなら半分自業自得だけど
真面目に勉強のサイトを探してても詐欺サイトに出遭ったりするからな
0260デフォルトの名無しさん (エムゾネ FFea-RATT)
垢版 |
2021/02/26(金) 13:55:43.66ID:w2bvpH1MF
>>257
>>258
技術用語でググって最初のページに出て来たサイトでも
開いたら「おめでとうございます!」っていうのを良く目にする
そっ閉じ
0267デフォルトの名無しさん (エアペラ SD96-ZxHx)
垢版 |
2021/02/26(金) 18:48:35.20ID:yh0R3TzgD
マジで理解できてないみたいで笑う
サイトには特定の広告しか載らないと思ってるのか?
広告はアドネットワークを介して表示されるけど、
アドネットワーク自体の広告審査はザルなのが多い
ザル審査を通っておかしな広告が紛れた場合におめでとうございます
だから同じサイトでも起きたり起こらなかったりする
検索語は全く関係ない
0269デフォルトの名無しさん (ワッチョイ ca01-Xw+O)
垢版 |
2021/02/26(金) 18:57:53.90ID:y/9ce84r0
>>267
そんな理由なら下手したらページ開く度にリダイレクトされるだろw
よくわからんからどこのページが
> 開いたら「おめでとうございます!」っていう
のか具体的に教えてくれ
0272デフォルトの名無しさん (ワッチョイ 4a63-EPVr)
垢版 |
2021/02/26(金) 19:32:59.31ID:ETeT2UNW0
最近検索してないんでしょ
1日中検索するレベルで調べものしてたら週に1回くらいの割合で引っかかるイメージだから1000回に1回くらいかな
検索結果画面にはそれっぽい記事であるかのように表示されてるけどリンク踏むと全然中身の異なるページに飛ぶ
Adblock入れてるけど普通に出てくるな
調べ物中に出てくるから問題あるサイト見つけても即閉じてドメインごとブロックしちゃうからどういうときに出てきたかとかいちいち覚えてないわ
今度見つけたら教えてあげるよ
0276257 (ワッチョイ deb5-bzY0)
垢版 |
2021/02/26(金) 19:58:32.94ID:i14zaM2r0
>>271
俺も>>272と同様
俺は200〜500回に1回ぐらいと言っておこうかな
キーワードとしては本当に「微分方程式」とか「回帰係数」とかで引っ掛かる
例を挙げようと履歴を今月初めまで探したが…見つからない
Avast入れてるんだけど、開くと「危険なサイトです!」とか言ってブロックされるんだよ
それは履歴に残らないんかな?

>>271が単に気付かずに地雷踏みまくってるっていうオチも無きにしも非ず…

俺も見つけたら教えるわ
そん時までに絶対にセキュリティソフトは入れとけよ
0278デフォルトの名無しさん (ワッチョイ 3a32-oL1e)
垢版 |
2021/02/26(金) 22:50:17.15ID:mdv/WRRD0
日本語だとリファレンスが機械翻訳だったり碌な情報がなかったりで
Googleで地域の設定をアメリカ+普段は日本語のページを検索にしてると
割とよく有るかな、Wikipediaのクローンみたいな謎のサイトも出てくる
0281デフォルトの名無しさん (ワッチョイ 4a63-EPVr)
垢版 |
2021/02/27(土) 00:05:40.83ID:SuycZ/gq0
見たことあるという複数人のレスがあるけど僕は見たこと無いから知りませーんwwwて小学生かな?
わざわざ怪しいサイトのurlなんぞ記録なんかしてないっつうの
調べものしてるときに出てくる関係ない情報をいちいち記録なんぞしてたら作業終わらんわ
0282デフォルトの名無しさん (ワッチョイ 4a63-EPVr)
垢版 |
2021/02/27(土) 00:10:50.22ID:SuycZ/gq0
機械翻訳かましただけのクローンサイトも検索妨害してきてうざいけどそれでは無い
記録してたわけではないから正確ではないけどここ半年〜1年くらいで出現し始めた印象
俺個人は多分10回くらい踏んだかな?
ほっときゃそのうちgoogleが対処していなくなるっしょと思ってるから大して気にはしてない
0283デフォルトの名無しさん (ワッチョイ ca01-Xw+O)
垢版 |
2021/02/27(土) 00:24:51.75ID:qhUfxMpi0
>>281
どんなワード使ってるのかもわからん
※ 「微分方程式」とか「回帰係数」ではそれっぽいのでないし
どんなページかもわからん
でも複数の人が見たことあるって言われてもなぁw
単にエロサイト踏んでるだけにしか見えんわ
0284デフォルトの名無しさん (ワッチョイ 0bad-W4Ol)
垢版 |
2021/02/27(土) 00:33:09.30ID:bt8z/nnq0
結構出てくるけどな。
この間優待で作ったカードを検索したらめっちゃそれっぽいのひっかかったよ。
シークレットウィンドウで検索しても出てくる。
貼れるのかな。
3ページ目ぐらいから変なリンクばっかりになってくる。
https://www.google.com/search?client=ms-android-google&;ei=ERQ5YPmdMIi5wAOEgY3oCg&q=%E3%81%BF%E3%81%9A%E3%81%BB%E3%83%97%E3%83%AD%E3%83%A0%E3%83%8A%E3%83%BC%E3%83%89%E3%83%A1%E3%83%B3%E3%83%90%E3%83%BC%E3%82%BA%E3%82%B4%E3%83%BC%E3%83%AB%E3%83%89%E3%82%AB%E3%83%BC%E3%83%89&oq=%E3%81%BF%E3%81%9A%E3%81%BB%E3%83%97%E3%83%AD%E3%83%A0%E3%83%8A%E3%83%BC%E3%83%89%E3%83%A1%E3%83%B3%E3%83%90%E3%83%BC%E3%82%BA%E3%82%B4%E3%83%BC%E3%83%AB%E3%83%89%E3%82%AB%E3%83%BC%E3%83%89&gs_lcp=ChNtb2JpbGUtZ3dzLXdpei1zZXJwEAMyAggAMgIIADICCAAyAggAMgIIADICCAAyAggAMgUIABDNAjoECAAQRzoECAAQBDoGCAAQBBAeOgQIABANOgYIABANEB5QqCBY_k9g-FFoB3ABeACAAawBiAHOEZIBBDIuMTWYAQCgAQHIAQXAAQE&sclient=mobile-gws-wiz-serp#ip=1
0286デフォルトの名無しさん (ワッチョイ 4a63-EPVr)
垢版 |
2021/02/27(土) 00:49:06.42ID:SuycZ/gq0
見たことないと主張できる程度には検索してんだよね?
個人的には検索回数なんか数えたことも無いけどここ半年で1万回くらいは少なくともしてんだよね?
調べものが少ない仕事なら1週間で10回も検索しないような人も多いと思うけど、まさかその程度で周囲にいる複数人の証言を馬鹿にしてるなんてことはないよね?
0291デフォルトの名無しさん (ワッチョイ 0363-4nbC)
垢版 |
2021/02/27(土) 04:07:09.57ID:sr9HwlGw0
>>286
スレチだな
そんなことが本当にあるなら一度見てみたいと思ってる人がいるかもしれないから
その状態を再現できる検索語を挙げるのは良いとしても
それ以外で続けるようなことではないな
0292デフォルトの名無しさん (ワッチョイ 4a63-EPVr)
垢版 |
2021/02/27(土) 08:21:09.09ID:SuycZ/gq0
スレチかどうかと言うなら初っ端からそうだろw
なに俺ルールで一部を正当化してんだw
そもそもうちじゃ署名なしビルドされたexeなんてセキュリティ上使えんよ、って話からスレチだ
そこからセキュリティ→https→詐欺サイト→最近の検索結果と脱線し続けてるんだから
0293デフォルトの名無しさん (ワッチョイ ca01-Xw+O)
垢版 |
2021/02/27(土) 08:36:08.60ID:qhUfxMpi0
ゲームとかエロとかちょっと頭の弱い子が飛びつくようなワードならまあなんとなくわかる

> 技術用語でググって最初のページに出て来たサイトでも
> 開いたら「おめでとうございます!」っていうのを良く目にする
って言うのが単に疑問だっただけ

Googleの検索結果が近年劣化してるのは俺も認める
0294デフォルトの名無しさん (ワッチョイ 0bad-W4Ol)
垢版 |
2021/02/27(土) 08:39:46.73ID:bt8z/nnq0
みずほプロムナードメンバーズゴールドカードが、頭の弱い子が飛びつくようなワードか?

疑問だったとか言い訳せんと、そういうタイミングもあるんだな、すまんと謝って幕引けよ。
お前が認めようが関係なく、すれ違いの話をねちっこく「ほんとか?」「嘘だろ」と繰り返したからだろ。
0297デフォルトの名無しさん (ワッチョイ ca01-Xw+O)
垢版 |
2021/02/27(土) 12:01:26.49ID:qhUfxMpi0
>>294
> みずほプロムナードメンバーズゴールドカードが、頭の弱い子が飛びつくようなワードか?
そうだと思うよ…みずほだし…
まあマジレスしとくと金絡みに飛びつくやつ狙いなんだろうね、お前みたいにw
0299デフォルトの名無しさん (スププ Sdea-W4Ol)
垢版 |
2021/02/27(土) 13:00:24.83ID:vXrabasWd
技術用語でも出るんだけど、再現例を出すのがめんどくさいから再現性の高い例を上げたんじゃん?

多分これで出るわ。
「stackoverflowerror jre7 ibm oracle」
微妙に間違うのが良いのかな。

>>297
なんやろこれ…って思って飛びつく前に検索したんよね。オリコなのは残念。
みずほプロムナードメンバーズ自体知名度低いしなぁ。
みずほはそこまで悪くないぞ。
0300デフォルトの名無しさん (ワッチョイ 4a63-EPVr)
垢版 |
2021/02/27(土) 13:03:06.78ID:SuycZ/gq0
釣る側は技術用語であるかどうかなんてどうでも良いんだから適当な単語埋め込むであろう
もちろん検索ヒットする可能性が高い単語である方が効率は良いが、bot等駆使して大量に作るんだからそこに技術用語が紛れる可能性があることは容易に想像できる
web上には技術絡みのページはそれなりの数があるんだからわざわざ除外する必要性がない

ゲームはあるけど技術用語にはあるわけが無い、あるなら例示せよ!って言う主張はどういう根拠から?
0302デフォルトの名無しさん (ワッチョイ 4a63-EPVr)
垢版 |
2021/02/27(土) 13:23:54.24ID:SuycZ/gq0
気になるから例見つけたら教えてや
で終わってた話をエロサイト踏んでるだの頭弱いだの煽る必要があったの?
普段からそうやって煽ることしかしてないの?
0310デフォルトの名無しさん (ワッチョイ ca01-Xw+O)
垢版 |
2021/02/27(土) 14:22:57.61ID:qhUfxMpi0
>>302
> 普段からそうやって煽ることしかしてないの?
いきなり
> 見たことあるという複数人のレスがあるけど僕は見たこと無いから知りませーんwwwて小学生かな?
とか言う人に言われてもねぇw
0313デフォルトの名無しさん (スププ Sdea-W4Ol)
垢版 |
2021/02/27(土) 14:32:18.54ID:vXrabasWd
>>311
俺は最初に出てきたとは言ってないし、
広告の状況や検索ワードによっては一番上に出てくるぞ。
検索ワード連動広告なんて水物なんだからこれだって言えるわけ無いでしょ。
馬鹿なの?
0315デフォルトの名無しさん (ワッチョイ ca01-Xw+O)
垢版 |
2021/02/27(土) 14:50:59.20ID:qhUfxMpi0
>>312-313
だから
> 技術用語でググって最初のページに出て来たサイトでも
> 開いたら「おめでとうございます!」っていうのを良く目にする
というワードがあるなら教えてよ
順序は水物って言うなら日頃からそういうサイトを見まくってるんじゃね?w
0316デフォルトの名無しさん (スププ Sdea-W4Ol)
垢版 |
2021/02/27(土) 15:53:36.23ID:vXrabasWd
>>315
そういうサイト見る意味がわからんが、検索ワード連動広告の仕組みも知らんのかな?
水物の意味がわからんとか?

https://www.google.com/search?q=execute+deploy+pascal+delphi+interactive+online+script+compiler+explorer+decompiler+linux&;client=ms-android-google&prmd=vni&source=lnt&tbs=li:1&sa=X&ved=2ahUKEwi0-M2rvYnvAhXMG6YKHQ3CB0kQpwV6BAgEECA&biw=432&bih=736&dpr=2.5
0323デフォルトの名無しさん (ワッチョイ deb5-bzY0)
垢版 |
2021/02/27(土) 17:41:41.35ID:6Ybb0kac0
vXrabasWdや俺・・・勉強熱心で検索回数が桁外れに多いため、危険なサイトにも出遭いやすい
その他大勢の愚民・・・馬鹿で鈍間な亀のため、危険なサイトにはあまり出遭わないが、出遭ってもまったく気付かず個人情報を抜かれまくってる
0324デフォルトの名無しさん (スププ Sdea-W4Ol)
垢版 |
2021/02/27(土) 18:00:27.40ID:vXrabasWd
今度はセキュリティ意識が低いとw
逆に意識してるぞ、なるほどわけわからんドメイン、レジストラどこなんだとか、どこのミラーか、とか。
生で踏むわけも無ければ、一応セキスペだしな。
0328デフォルトの名無しさん (ワッチョイ 0bad-W4Ol)
垢版 |
2021/02/27(土) 20:16:17.00ID:bt8z/nnq0
>>325
アホかな。
広告が終わったあとの残骸も検索にひっかかるんだが。
ごく普通のウェブサイトに見えるし。
しかし俺の貼ったURL踏んでもないのなwwww
理解力も無ければ見る能力もないのかwww
必ずしも広告自体をクリックするわけではない。
ほんとにアホなのな。
もうみっともないから黙ったら?

クリックはプライベートウィンドウとか、VM立てて敢えてやるときあるよ。
注意喚起もしないといかんしな。
0329デフォルトの名無しさん (ワッチョイ ca01-Xw+O)
垢版 |
2021/02/27(土) 20:35:11.11ID:qhUfxMpi0
>>327
具体的に書けよ
書けないなら黙ってたほうが良いかと

>>328
> 広告が終わったあとの残骸も検索にひっかかるんだが。
連動広告の話か?
ならあり得んよ、契約終わったら単なるWebサイトだからトップページになんて出てこないし

> しかし俺の貼ったURL踏んでもないのなwwww
⇒ >> 3ページ目ぐらいから変なリンクばっかりになってくる。
既に>>309で指摘されてるだろ

> ほんとにアホなのな。
> もうみっともないから黙ったら?
お前がな

> クリックはプライベートウィンドウとか、VM立てて敢えてやるときあるよ。
> 注意喚起もしないといかんしな。
話をそらそうと必死かよw
0333デフォルトの名無しさん (ワッチョイ 0bad-W4Ol)
垢版 |
2021/02/27(土) 22:40:36.89ID:bt8z/nnq0
>>329
トップページに出てくる検索ワード出したよね。

もういいわ。

>>330
俺は一週間に一度ぐらい見るぞ。
CADのカーネル系のことを検索してたりすると割と出る。
ニッチな、普通の検索結果が尽きる部類を検索してるか否かではないかな。
みずほプロムナードメンバーズゴールドカードもその部類だと思うわ。
まずみずほプロムナードウェブがニッチだから。
0334デフォルトの名無しさん (ワッチョイ ca01-Xw+O)
垢版 |
2021/02/27(土) 23:04:11.88ID:qhUfxMpi0
>>330
だよね
まあちょっと盛っちゃって引っ込みつかなくなった感じかと
今度はCADのカーネル系とか言い出してるしw

>>333
> トップページに出てくる検索ワード出したよね。
ごめん、見落としてるみたいだからレス番示して引用してくれるかな?
0339デフォルトの名無しさん (ワッチョイ ca01-Xw+O)
垢版 |
2021/02/28(日) 08:03:07.00ID:71c+GuaM0
CAD や カーネル は普通に技術用語だと思うけど CAD カーネル で検索しても特に怪しいのは出てこない
(1ページ目しかみてないけど)
この状況だとまたそれっぽいこと言ってごまかそうとしてるとしか思えない

> 別に逃げでもなんでも無いが。
そうかな?
> トップページに出てくる検索ワード出したよね。
と言いながら具体的に聞かれたら
> 自分で探せ。
とか逃げ以外の何物でもないだろ
0340デフォルトの名無しさん (ワッチョイ 0bad-W4Ol)
垢版 |
2021/02/28(日) 08:19:12.80ID:qoLNSclH0
CADカーネルでググるやつ居たら馬鹿だわ。
具体的なCAD名とかそのSDKの名前でググるんだよ。
会社バレたら嫌だから名前出さんけど、大手数社のCADとそのSDK名でぐぐってみたら?
0348デフォルトの名無しさん (ワッチョイ 0363-4nbC)
垢版 |
2021/02/28(日) 14:17:55.08ID:dfHrudZE0
>>341
すごいよなw
大手の会社のCADなのに1社でしか使われてないってw
本当にそんなので会社名がバレるなら、誰かが大手数社のCAD名でググって該当するものを見つけて
〇〇でググると最初のページに出て来たサイトでも開いたら「おめでとうございます!」って出てくる
と言ったらワッチョイ 0bad-W4Olは会社がバレて困るわけで、そんなのを例に出すなよとw
〇〇以外にも□□とか△△とか、該当するものは他にもあるということなら
その名前を出せばいいんだし、そういう状況なら〇〇の名前を出しても
会社がバレることはないんだよな
ワッチョイ 0bad-W4Olの会社で使ってるのが〇〇かどうかは分からないんだから
0349デフォルトの名無しさん (エムゾネ FFea-W4Ol)
垢版 |
2021/02/28(日) 14:33:54.31ID:fpzWKZ4lF
ああ、全然レベルが違うわ。
他社さんだけど、CATIAとWindchillに移行した大手、と言えば、あのグループしか思い浮かばんだろ。
お前の思う程度の大手ではない。
0354デフォルトの名無しさん (ワッチョイ ca01-Xw+O)
垢版 |
2021/02/28(日) 15:16:21.30ID:71c+GuaM0
>>349-350
そりゃ最近大々的に移行したって言うなら特定もされるかも知れんな
でもそう言うケースは正式発表してるからバレても問題ないだろ
あと大手エアプのクソレス無視してゴメンねw

>>352
そもそも
>>335 > もうレスしないわ。
って大見えきってたのに…
とっとと遁走しろよw
0356デフォルトの名無しさん (ワッチョイ db97-Dcig)
垢版 |
2021/02/28(日) 17:27:05.31ID:EXSngojR0
CADってAutoCADとかVectorWorksとかどこでも使ってるようなのもあるけど、
2DのそういうCADばっかりが全てではないし、特殊性高いソフトも多いと思うけどな
基板CADだってCADだし、ぶっちゃけ自分がCAD使ってたとしても他の会社のCADのことは想像できないぐらいまちまちだと思うけどなあ。
0363デフォルトの名無しさん (ワッチョイ deb5-bzY0)
垢版 |
2021/02/28(日) 23:17:15.71ID:Mw2IP7Ox0
なぁなぁ、F#ってC#の後継言語のつもりで作ったん?
だとしたら、F#はこけたけどさ、うまく行ってたら取って代わられてたじゃん?
この先、マイクロソフトはC#の上を行く言語を作って
「C#、今までご苦労ね、バイナラー〜、みんな新しいZ#に移ってね」するつもりあるんかな?
0364デフォルトの名無しさん (ワッチョイ 0bad-W4Ol)
垢版 |
2021/02/28(日) 23:19:47.36ID:qoLNSclH0
.Net 6は早く試してみたいんだよな。
Xamarinの名前が無くなって、単なる.NET 6のAndroidアプリになるから、そういう意味でも期待。
Xamarinは名前に対して悪評が流れすぎ。
0366デフォルトの名無しさん (ワッチョイ deb5-bzY0)
垢版 |
2021/02/28(日) 23:39:59.76ID:Mw2IP7Ox0
>>365
じゃ、またCIL上で動くJ#なんていうC#と似て非なる新しい言語が開発されたらどうすんのさ?
J#はC#よりも短くて曖昧さ無く書けます、なんて言いつつ、
C#とは別に覚えることが増えて・・・みたいになったらC#で覚えたこと無駄になるじゃん
そりゃその先もC#は続けられるだろうけどさ、そこまで良い言語とも思えてないからやる気出ねぇ
0372デフォルトの名無しさん (ワッチョイ db97-Dcig)
垢版 |
2021/03/01(月) 09:02:53.23ID:kUoELfRz0
>>366
勉強したことが無駄になるかもしれないなんてありえないからやらないとかいって、
やらない理由探しをしてたらいつまで経ってもプログラムなんて書けないよ
そこまで良い言語とも思えない、というのはどのような思考を経てそう思うに至ったの?
0377デフォルトの名無しさん (アウアウウー Sa2f-CIDx)
垢版 |
2021/03/01(月) 12:19:24.28ID:/mNOa9wea
>>376
C#に関しては不便はほとんどないよ。

まれに無関係なC/C++のドキュメントが引っかかることはあるが、
これはGoogleに逐語的に検索する機能(というか、余計な忖度を抑止するオプション)
が存在しないためであってC#のネーミングのせいではない。

もう20年ぐらいになるけど、Googleは独占的地位に胡坐をかいて堕落してる。
Chromeなんてポンコツでも信者みたいな奴がみんな褒めまくって熱心に
布教してくれるような状況が続いてるんだから堕落して当然だけど。
0381デフォルトの名無しさん (アウアウウー Sa2f-CIDx)
垢版 |
2021/03/02(火) 01:55:31.45ID:v7LWG9jFa
だからそれMSのせいじゃなくてGoogleの問題でしょw
何で誰もあの糞使いづらい検索エンジンに文句言わないのかほんと謎
近年は調子にのって事実上の「検閲」までやってるって話だよね
0382デフォルトの名無しさん (ワッチョイ 4a63-EPVr)
垢版 |
2021/03/02(火) 03:24:43.16ID:wPt5GL7I0
いや名称の問題でしょw
visual studio codeだとvisual studioと被ってしまうのでvscodeという略称を使ってんじゃん
同じ単語が入った名称だけど、使用者に応じて結果を切り替えない検索エンジンに問題があるの?
「visual studio」という検索ワードに対してvscodに関する記事は除外するのが理想な挙動なの?

名称に記号を使うのも同様
識別子に記号が使えない箇所ではcsharpと記載したりすることもある
wikipediaの記事なんかがそうね
これをwikipediaの問題である、とかいうの?もしくはwebの問題かな?
0384デフォルトの名無しさん (アウアウウー Sa2f-kXWn)
垢版 |
2021/03/02(火) 03:38:06.63ID:Oo46sT4Ba
ちょっと何言ってるのか分からないけどGoogleの問題点は
>>377に書いてるように指定されたキーワードを逐語的に検索するオプションがないこと。

"visual studio"で検索したはずなのに"visual studio"というフレーズがまったく出現しない
ドキュメントが検索結果に表れることを抑止できないことだよ。

>>380の人も"visual studio"で検索して"visual studio"と"VSCode"の両方のフレーズが
使われているページが引っかかることには文句はないだろう。

正直、検索エンジンはGoogleに駆逐された日本のガラパゴス検索エンジンの方が
シンプルで使いやすかった。富士通とかNTTがやってたやつね。
0385デフォルトの名無しさん (アウアウウー Sa2f-CIDx)
垢版 |
2021/03/02(火) 03:42:52.01ID:Oo46sT4Ba
「フレーム問題」というのがあるから検索エンジンといえどもドキュメントの文脈まで
把握できないことは仕方がない。

だが"visual studio"と"vscode"を区別するのに文脈を理解する必要があるか?
"C#"と"C++"を区別するのに文脈を理解する必要ある?
ないね機械的にできるじゃん。
0386デフォルトの名無しさん (ワッチョイ 4a63-EPVr)
垢版 |
2021/03/02(火) 05:05:19.21ID:wPt5GL7I0
むしろ君が何言ってるかわからんよw

"visual studio"で検索して"visual studio"と"VSCode"の両方のフレーズが
使われているページが引っかかることには文句はないだろう。

いや、そこに文句があるって話なんだが…
例えばvs2019の拡張機能を調べたいときにvscodeの拡張機能に関する記事が引っかかる
これを問題視してるんだよ
2019もcodeも一般的な単語なのでvs2019、vscode双方のページにこの単語が普通に含まれてしまう
単語が入っているから検索エンジンで引っかかる
これを検索エンジンの問題だというの?
0387デフォルトの名無しさん (ワッチョイ deb5-bzY0)
垢版 |
2021/03/02(火) 10:48:14.01ID:aNpoIySJ0
どう考えてもMSの名称の問題だろ

Visual Studio Community
Visual Studio Professional
Visual Studio Code

これらをすべて打ち込めば、ある程度問題は解消される

しかし、記事を書く側が上記二つを"Visual Studio"と略して書くことが多いので、
"Visual Studio Professional"で検索すると見つからない記事が出てくる
なので"Visual Studio"で検索すると、今度は上記三つが引っ掛かってしまう

こんなことすら考えないMSが問題
0390デフォルトの名無しさん (ワッチョイ 8a01-k1AF)
垢版 |
2021/03/02(火) 11:50:57.37ID:PYhnkQa90
>>384
それ検索オプションの完全一致でできるよ
英語だとオプションの名前はverbatim(つまり”逐語的に”検索)

括弧やカンマのような記号入りは無理たけど
"visual studio”とかなら問題ない

>>382
バージョン名やマイナス検索を追加して
visual studio 2019 -vscode + 検索ワード
とかでやってみれば
0391デフォルトの名無しさん (ワッチョイ deb5-bzY0)
垢版 |
2021/03/02(火) 12:04:58.85ID:aNpoIySJ0
>>390
> visual studio 2019 -vscode + 検索ワード

まず、なんでそれをユーザーにさせるんだよ、って話だよ
それとVisual Studio Communityの記事の中に
「VSCodeの場合は…」とか言う文章が入ってた場合、
その検索方法だと一生見つからない

そこまで擁護するのはMSの人間か、相当の馬鹿なのか
0394デフォルトの名無しさん (アウアウウー Sa2f-CIDx)
垢版 |
2021/03/02(火) 12:18:51.90ID:SS4G3fT6a
>>386
なるほど、確かにまったく一致部分がない完全な別名なら
しなくてよかったはずの苦労が存在するのはその通りだと思う。
だけど企業のブランディング上そういう訳にもいかんでしょう。

やったことはないが生物の病原体のvirusを調べていてcompurter virusの記事が
引っかかることは多くないはず。

これは検索エンジンが

(1) 両者を区別した上で
(2) 記事のタイトルや内容からどちらを扱う記事か区別している

からだと思うが、本来同じことはVSとVSCodeについても可能なはず。

どうでもいいが、次のように入れたら
「"visual studio" 拡張機能 -"visual studio code" -"vscode"」

これはある程度機能するみたいだよ。
困るのは""や-の演算子が常に機能するとは限らないところ。
0395デフォルトの名無しさん (アウアウウー Sa2f-CIDx)
垢版 |
2021/03/02(火) 12:20:14.93ID:SS4G3fT6a
>>390
Googleに逐語的に検索するオプションはない。
""は機能したりしなかったり実に気まぐれだ
0397デフォルトの名無しさん (アウアウウー Sa2f-CIDx)
垢版 |
2021/03/02(火) 12:45:42.12ID:SS4G3fT6a
>>391
だから、それは本来はMSの責任じゃない。
本来責められるべきは検索エンジンの方だって

コンピュータウィルスについて調べていて
病原体のウィルスをコンピューターウィルスと比較する記事が
引っかかってしまうのは"computer virus"なんて名付けた人のせいか?

>>396
Windows RTとWinRTみたいに擁護のしようがないのは確かにあったね
0398デフォルトの名無しさん (ワッチョイ deb5-bzY0)
垢版 |
2021/03/02(火) 13:46:57.03ID:aNpoIySJ0
>>397
>コンピュータウィルスについて調べていて
>病原体のウィルスをコンピューターウィルスと比較する記事が
>引っかかってしまうのは"computer virus"なんて名付けた人のせいか?

ああ、その通りだ
MSと同じぐらい馬鹿だ
お前はもっと馬鹿だけどな
0400デフォルトの名無しさん (ワッチョイ 1b93-ZxHx)
垢版 |
2021/03/02(火) 15:00:01.18ID:z4+VCCgc0
命名なんてかばん語と既存単語が殆どで、
オリジナルの単語なんてまず無いし、
オリジナルの単語はイメージ付けづらくて廃れがち
検索エンジンが検索する人をバカにしすぎなだけ
0402デフォルトの名無しさん (アウアウウー Sa2f-CIDx)
垢版 |
2021/03/02(火) 15:34:37.69ID:SS4G3fT6a
>>401
普段Google使ってないのか。
だからそれは不完全にしか機能しないんだよ。

ちなみに、調べてみれば分かると思うが、Googleは以前逐語的な検索を可能にする
オプションを検討している時期があったが、結局実現していない。
0407デフォルトの名無しさん (アウアウウー Sa2f-CIDx)
垢版 |
2021/03/02(火) 17:57:46.11ID:UMwZG+xJa
>>406
これも酷い
こんな奴って誰のことだよw
0412デフォルトの名無しさん (ワッチョイ 0363-4nbC)
垢版 |
2021/03/03(水) 00:03:07.08ID:xw0tRdH60
"visual studio"と"vscode"の区別についての話で
>>390が「検索オプションの完全一致」について
>括弧やカンマのような記号入りは無理たけど
>"visual studio”とかなら問題ない
と書いてるのに、それが「不完全にしか機能しない」例として
>"アルゴリズム + データ構造"
を挙げるってどうなんだろ
0413デフォルトの名無しさん (アウアウウー Sa2f-CIDx)
垢版 |
2021/03/03(水) 02:31:40.37ID:slcyC3Aka
>>412
こいつも」酷い。
何度も繰り返し言ってるけど、論点はGoogleに逐語的な検索を行うオプションが存在するかどうか。
逐語的って言葉の意味は理解してますか?

逐語的に検索するオプションは存在しない、という主張に対して>>390は反論として成立しているだろうか?
マジで大丈夫か


ここからはおまけ

もちろん、例えば機械翻訳が不完全であることがそうであるように、
Google検索の件の制約が技術的な限界に起因するものであればそれを批判するのは
言い掛かりだと言えるかもしれない。

Google検索の件の制約はそういう類の物だろうか?
考えるまでもないね。
0414デフォルトの名無しさん (ワッチョイ 0363-4nbC)
垢版 |
2021/03/03(水) 03:05:09.28ID:xw0tRdH60
>>413
問題になってるのはこれだよな

>>384
>"visual studio"で検索したはずなのに"visual studio"というフレーズがまったく出現しない
>ドキュメントが検索結果に表れることを抑止できないことだよ。

「検索オプションの完全一致」でこれは防げないの?
防げないのならその例を挙げればいいわけで
防げるなら「逐語的」の意味は関係ないよな
0415デフォルトの名無しさん (アウアウウー Sa2f-CIDx)
垢版 |
2021/03/03(水) 03:53:18.03ID:aqSSGyA4a
>>414
また始まった
だから逐語的って言葉の意味を理解していますか?

防げない例は既に>>405に挙げている。
この例で君が引用した箇所に書いた問題を抑止できない理由は
Googleに逐語的な検索を行う機能が存在しないから

フレーズに記号を含むことがGoogleを「免罪」する理由になるとまったく思えないが、
仮にその言い訳を認めるとしても同様の問題は記号を含まない検索でもしばしば起こる

こんなのGooglle毎日使ってれば誰でも経験してるだろ。
0416デフォルトの名無しさん (ワッチョイ 0363-4nbC)
垢版 |
2021/03/03(水) 04:08:37.93ID:xw0tRdH60
>>415
>同様の問題は記号を含まない検索でもしばしば起こる
と言うなら実例をいくつか挙げればいいのに挙げないんだよな
>>384
>"visual studio"で検索したはずなのに"visual studio"というフレーズがまったく出現しない
>ドキュメントが検索結果に表れることを抑止できないことだよ。
これは「検索オプションの完全一致」で防げるってことでいいのかな
0420デフォルトの名無しさん (スフッ Sdea-W4Ol)
垢版 |
2021/03/03(水) 10:02:38.01ID:mCX6K/+kd
連動広告は具体例出したけど認めない人が居たんじゃん。
結局なんにでもイチャモンをつけたいだけの実務経験ゼロの人だと明確になったんだし、そっちを排斥してくれ。
0422デフォルトの名無しさん (ワッチョイ 0b7c-ZxHx)
垢版 |
2021/03/03(水) 11:39:26.96ID:VIYI6BjX0
例を出せって言うと勝手に相手が疲弊するからな
それに対していちゃもん付けるだけで論破した気になれて気持ち良くなれる
目的がそこだからやり合うだけ無意味
0432デフォルトの名無しさん (ブーイモ MM4f-5nx2)
垢版 |
2021/03/03(水) 13:49:53.95ID:q4liHMPgM
無知は恥じゃないんだが無知を認められなくなったら終わり
過去の知識がどれだけあっても周囲の足を引っ張る老害でしかない

2件とも完全に老害パターン
同一人物ならまだ救いがある
0435デフォルトの名無しさん (ワッチョイ 4a7b-CIDx)
垢版 |
2021/03/03(水) 18:04:49.14ID:/3zr+XVw0
200レスくらい関係ないレス続いてんじゃね
回線切り変えながらレスバトルやっている奴までいて引くわ
スレ違いのネタなら適切な突っ込みないからって自覚無くてもクズ
0437デフォルトの名無しさん (エムゾネ FFea-RATT)
垢版 |
2021/03/04(木) 11:19:12.04ID:J6mhpq5tF
>>431-432
0453デフォルトの名無しさん (ワッチョイ 3997-rtiD)
垢版 |
2021/03/25(木) 23:35:10.85ID:e4L6C77m0
3DCGは特にUnityなんかだとアート方面のことを考える人と
テクニカル方面のことを考える人が分かれてるから、
アート方面の人と会話さえ出来れば自分のアートセンスはあんまり関係ないと思うけどな
アーティスト向けのDCCツールはきついだろうけど
0454デフォルトの名無しさん (ワッチョイ 69ad-+fTb)
垢版 |
2021/03/26(金) 01:20:23.74ID:rO7zxT6G0
うちも映像制作で使ってるよ。
PBRで良いものであれば、めっちゃ楽。
フェードアウトとか色々スクリプト書いて、タイムラインに並べられるように用意して、あとは3DCGが得意な人と分担してやってる。
レンダリング用のバッチ書いたりとか色々足回り作る部分は多いけど、便利よ。
0455デフォルトの名無しさん (ワッチョイ d9c9-UUyU)
垢版 |
2021/03/30(火) 14:54:26.41ID:HFiy3yDr0
どなたか以下の現象の解決策をご存知なら教えて下さい。

----
(1)フォームアプリケーションにRichTextBoxを配置
(2)RichTextBoxの縦スクロールを有効にする

exe実行

(1)RichTextBoxの枠内に入り切らない行数のテキストをペーストする。
※この時点でカーソルは最下位行になる。
(2)カーソル位置をそのままにして、スクロールバーを一番上に持っていく。
(3)フォーカスを別のウィンドウに移動
(4)フォーカスをRichTextBoxのフォームに戻す

すると、カーソル位置がRichTextBoxの枠内の一番上にくるように再描画が行われてしまう。
結果、RichTextBox内の文字が消えたように見えるが、スクロールバーをクリックすると正常表示に戻る。

----
以上です。
0456デフォルトの名無しさん (アウアウウー Sacd-1mGO)
垢版 |
2021/03/30(火) 19:33:17.18ID:POGVGajaa
>>455
ペーストしたテキストの末尾の行が最上位に来てしまうってこと?
再現できまへんわ。
0459デフォルトの名無しさん (ワッチョイ d9c9-UUyU)
垢版 |
2021/03/30(火) 23:40:52.03ID:HFiy3yDr0
ありがとうです。

余計なものを削ぎ落したプロジェクトに、
再現の様子を収めた動画を同封してアップしました。

https://media-uploader.work/?mode=detail&;id=7574&original=1

どなたか気が向いたら見てみて下さい。

なお、環境依存の可能性もあるかと思って手持ちのPCで実行してみたら
win8.1とwin10 は再現し、win server2012 は非再現でした。
動画を見て頂けるとわかると思いますが、フォーカスが当たった瞬間に余計なイベントが発生している感じにみえます。
0461デフォルトの名無しさん (ワッチョイ b1b5-lMfL)
垢版 |
2021/03/31(水) 00:51:58.68ID:gHPQ065T0
>>459
俺は見る気はサラサラないが、>>460の言う通りエラーが出る

media-uploader.work へのアクセスが拒否されましたこのページを表示する権限がありません。
HTTP ERROR 403
0464デフォルトの名無しさん (ワッチョイ b1b5-lMfL)
垢版 |
2021/03/31(水) 23:25:05.65ID:gHPQ065T0
>>463
ああ、今度こそ見える
おかしな挙動

他の人頼む
0466デフォルトの名無しさん (テテンテンテン MM96-fTYp)
垢版 |
2021/04/01(木) 10:48:51.53ID:tyY0ZWw2M
Linqで.max()とかしたときに、その要素が配列の何番目かも取れますか?
やっぱら普通にloop回して値なめてインデックスも保存するしかないかな?
0469466 (テテンテンテン MM96-fTYp)
垢版 |
2021/04/01(木) 11:23:32.49ID:tyY0ZWw2M
即レスあざっす。
コードはシンプルですが、やっぱりループは2周回しちゃいますよね?

aggregateは使いなれてないので勉強してみます。
0470デフォルトの名無しさん (ワッチョイ f579-Cd0d)
垢版 |
2021/04/01(木) 12:46:48.51ID:DPgukaDD0
上のコードは二周してないよ
Aggregateがループ一周するとき、Selectでインデックス付きの値に変換してるだけ

自分でIEnumeratorを実装してWriteLineなりステップ実行なりで確かめてみるといい
0471466 (テテンテンテン MM96-fTYp)
垢版 |
2021/04/01(木) 12:56:26.15ID:tyY0ZWw2M
ありがとうございます。
aggregateのたびにselectが一個ずつ呼ばれてその都度newってことですね。
0475デフォルトの名無しさん (テテンテンテン MM4b-Ya2g)
垢版 |
2021/04/03(土) 08:07:46.79ID:xRi4BzBEM
int[] hoge ={1,5,8,3,6,1,2,5,4,1,1,4,8,1};
みたいな配列がある時に一番出現回数が多い要素を取る方法ある?
この例だと1が5個あるから1みたいな。
1の出現回数、2の出現回数、3の…って数えた結果を入れた配列作って、またその配列を頭からなめるしかないかな?
普通に↑書くとなんだかんだで10行に全然収まらず汚くなっちゃいます。
0480デフォルトの名無しさん (ワッチョイ 15e6-p1/t)
垢版 |
2021/04/03(土) 09:24:02.01ID:tmsfTtPy0
>>477
それでも正しい答えを返すけど、グループ化後、カウントするのに1巡し、ソートして (最大カウントを取得して) いるから、ソート結果を他の用途で使う必要がないならムダがある。
1巡で最大カウントを探すならこう。

hoge
.GroupBy( x => x )
.Aggregate(new { Value = (int?)null, Count = 0 },
(total, next) => next.Count() switch {
var count when count > total.Count => new { Value = (int?)next.Key, Count = count },
_ => total,
})
.Value;

switch 式を使っているのは next.Count() を変数 count で受けるため。
0481デフォルトの名無しさん (ワッチョイ 15e6-p1/t)
垢版 |
2021/04/03(土) 09:56:22.52ID:tmsfTtPy0
同着1位が複数ある場合に備えて少し拡張。結果は int ではなく IEnumerable<int> で返るようになります。

hoge
.GroupBy( x => x )
.Aggregate(new { Value = Enumerable.Empty<int>(), Count = 0 },
(total, next) => next.Count() switch {
var count when count > total.Count => new { Value = Enumerable.Repeat(next.Key, 1), Count = count },
var count when count == total.Count => new { Value = total.Value.Concat(new [] { next.Key }), Count = count },
_ => total,
})
.Value;
0482475 (テテンテンテン MM4b-Ya2g)
垢版 |
2021/04/03(土) 11:48:23.26ID:xRi4BzBEM
回答色々ありがとうございます。
LINQ慣れてないので、これから481さんのを、確認したいと思います。

動作確認用にまずはシンプルにこんな感じに書いてみました。
loopで適当に
for( int i=0;i<hoge.length;++i){
hogeIndex[hoge[i]]+=1;}
で集計と最大値みて
Array.IndexOf(higeIndex,max)
0484475 (テテンテンテン MM4b-Ya2g)
垢版 |
2021/04/03(土) 13:16:22.63ID:G1gOaHFKM
morelinq初めて知りました。
他にもimportedLinqとかみんな今のLINQに物足りなさ感じで色々作ってんですね。多言語にあるものは純正LINQにもガンガン取り込んで欲しい。
0485デフォルトの名無しさん (ワッチョイ d573-XUMB)
垢版 |
2021/04/03(土) 22:33:48.62ID:+IgRciBO0
あの目的で481みたいなソース書くやつがいたらわしだったらチームから外すな。
万事あんなソースで埋め尽くされてたら、
超簡易で済むソースがわけわからんもんになるわ。
0489デフォルトの名無しさん (ワッチョイ 15e6-p1/t)
垢版 |
2021/04/04(日) 02:57:20.53ID:RzHfgfdU0
>>485
まあわかる。というか、そういう批判が来ることを承知で書いた。
LINQ は map, filter に強いが reduce に弱い。reduce する場面では無理に LINQ にこだわらずイテレーション回した方がよい。

なんで LINQ で書いてみたかっていうと、そうは言っても手続を混ぜずに関数型で書きたいって場面もあるから、思考パズルとして。
どうせ、この課題は学校の宿題とかだろうし。さすがにチーム開発の場面で濫用はしない。

プログラムはリソース制御とデータ変換に分かれるが、データ変換を純粋に連ねていく場面では LINQ から外れたくないってこともある。
そういう場合は 481 のようなのをメソッド定義し、中身は隠蔽してモジュール化しておいて、宣言的に LINQ メソッドを連ねていく。

LINQ to Object なら手続が混じっても問題ないから LINQ にこだわりすぎるのはよくないけれども、一方で LINQ to Entities にする場合は完全に関数型で書かざるを得ない。だから、LINQ to Entities の使い手なら、いかに関数型に閉じて記述するか、っていう思考訓練はしておく必要がある。(481 の例は Aggregate 使っているから LINQ to Entities にならないし、現状の LINQ to Entities には限界があるけど。)
0490デフォルトの名無しさん (アウアウウー Sae9-kjVL)
垢版 |
2021/04/04(日) 03:29:46.02ID:Vg+CQPm0a
LINQ乱用せずに書いたらどうなるかなと思っていろいろ考えてみたけど
思ったより綺麗に書けんね。

結局>>483が使えるならこれが一番簡潔でいいな
っていうかヒストグラム求めるって標準のライブラリにありそうでなかったんだね。
0491デフォルトの名無しさん (ワッチョイ 55b5-vyem)
垢版 |
2021/04/04(日) 17:47:26.09ID:glgnW2pm0
>>488
どうか責任を以ってあなた様がお召し上がりください
0492デフォルトの名無しさん (ワッチョイ 1b62-kjVL)
垢版 |
2021/04/05(月) 14:17:24.94ID:UvEZGDJy0
>>490
リンクを一切使わなくても別にって感じだけどな

var dic = new Dictionary<int, int>();
foreach(var h in hoge){
if(!dic.ContainsKey(h)) dic.Add(h, 0);
dic[h]++;
}

int maxCount;
List<int> maxKeys;
foreach(var pair int dic){
if(maxCount == pair.Value) maxKeys.Add(pair.Key);
else if(maxCount < pair.Value){
maxCount = pair.Value;
maxKeys = new List<int>(){ pair.Key };
}
}
0493デフォルトの名無しさん (アウアウウー Sae9-kjVL)
垢版 |
2021/04/05(月) 15:32:07.99ID:0Q3jeorWa
>>492
個人の感想です、だけどあんまり綺麗じゃないよねそれ。

重要なのは何を使うか使わないかじゃなくて
読みやすいかじゃないかな。
LIN}Qを乱用云々と書いたのはそれは一般に読みづらいから

自分ならこの辺で手を打つかな。知らんけど
効率無視ならUniquelizeなんてメソッドはいらない

int[] hoge = { 1, 5, 8, 3, 6, 1, 2, 5, 4, 1, 1, 4, 8, 1 };
var uhoge = Uniquelize(hoge);
var histogram = uhoge.Zip(uhoge.Select(x => hoge.Count(y => x == y)), (x, y) => new { Item = x, Count = y });
var max = histogram.Aggregate((candidate, next) => next.Count > candidate.Count ? next : candidate);
....

static IEnumerable<T> Uniquelize<T>(IEnumerable<T> source) where T:IEquatable<T>
{
  var list = new List<T>();
  foreach (var item in source)
    if (!list.Contains(item)) list.Add(item);
  return list;
}
0502デフォルトの名無しさん (ブーイモ MM6b-VtYg)
垢版 |
2021/04/05(月) 22:30:01.43ID:fFJLFu4zM
うんだからほとんど定数時間ね
intのHash計算とバケツへのランダムアクセスは定数時間
運が悪いと短いシーケンシャルアクセスが入るかもしれないが確率的には気にしなくていい
0505デフォルトの名無しさん (ワッチョイ 1b62-7hpE)
垢版 |
2021/04/06(火) 00:36:46.27ID:1qFpIEwJ0
元がhashsetでいいかって内容だったからね
hashsetは型で重複がないことがわかりuhoge変数の仕様とも合致しているからより適切だと思うけど、別に気にする程じゃない
0506デフォルトの名無しさん (テテンテンテン MM4b-Ya2g)
垢版 |
2021/04/06(火) 11:56:42.49ID:12/RlRALM
LINQ盛り上がってるので、この流れで。
複数の配列の積集合求めたいときおすすめありますか?
intersectを順番にやってく?
0507デフォルトの名無しさん (スップ Sd43-lQ1w)
垢版 |
2021/04/06(火) 12:27:01.17ID:BBKNAvYgd
特にパフォーマンスが必要ないなら手軽に順次Enumerable.Intersect
多少パフォーマンスを求めたいならHashSet化して順次HashSet.IntersectWith

複数のコレクションの積集合を取る操作を頻繁に行うならそういうメソッドを作っておくが吉
0508デフォルトの名無しさん (ワッチョイ a301-51IN)
垢版 |
2021/04/06(火) 19:13:29.90ID:wES9tagM0
件数のバラツキが大きいなら一番少ないのをHashSetして少ない順にIntersectWithしていくと多少高速
Enumerable.Intersectは引数で渡されるほうがSetに変換されるのでHashSetとは逆
0509デフォルトの名無しさん (テテンテンテン MM8e-uMyQ)
垢版 |
2021/04/13(火) 11:47:34.09ID:NVLgO6N7M
windiws form applicationでreflectionを使って名前でForm1 class内で定義されたメソッドを呼びたいときはどうしたらいいですか?
var mtd = this.GetType().GetMethod(名前);
だと拾えませんでした。
0512デフォルトの名無しさん (ワッチョイ 2b54-zuU1)
垢版 |
2021/04/13(火) 19:04:32.36ID:eLi1/5j/0
数年ぶりにForm使う事になりました。
Controlを座標決め打ちで配置する事になんとなく違和感感じるんですが、
Dock・Padding・Marginでレイアウトしていくのは避けるべきでしょうか?

例えば、1つのフォームを左右2つに分ける場合は、Dock.FillのPanelとDock.RigthのPanelを置いて、
それぞれのPanel内に配置するコントロールも、Dock・Margin・Paddingでレイアウトしたいです。
0513デフォルトの名無しさん (ワッチョイ 1724-AglQ)
垢版 |
2021/04/13(火) 19:38:45.21ID:+Ahw3+Yh0
当たり前だけど座標決め打ち配置なんて滅多に行わないのが普通

そういう場合はTableLayoutPanelを利用するのが一般的じゃないかな
RowとColumn指定で表みたいに配置できるタイプのコンテナ
つまりその場合はColumnCountを2にして左側に置きたいものをColumn=0、右に置きたいものをColumn=1とすればいい

Dockとかで左右分けるのも無しではないが、そうするとコントロールの長さによっては被りが発生する
0516デフォルトの名無しさん (JP 0H9e-8MNu)
垢版 |
2021/04/14(水) 08:38:52.66ID:BYzg6/VGH
Formで*LayoutやPaddingでレイアウトしてくの、VisualStudioのデザイナで保存した瞬間に座標決め打ちされるのがね……

個人開発なら問題ないけど個人開発なら素直にWPFなり使えば良いし
複数人での開発だと1人でもデザイナでレイアウトしたい人がいるとその人が保存したら決め打ち座標が設定される
0518デフォルトの名無しさん (ワッチョイ 376e-Ho7r)
垢版 |
2021/04/17(土) 15:48:49.32ID:knKDzqXi0
独学で小さな会社の社内用にちまちまやっているのですが
フォームの数やクラスファイルが次第にでかくなり
VisualStudioが重く感じたり、デバック立ち上げるときのもっさり感が気になります
いくらかDLL化するとVisualStudioでデバックするときの処理の軽さや
Setupファイルのビルドの速さなんかに影響したりしますか?
個人レベル(単独で)で開発してる限りでDLLにするメリットってありますか?
0520デフォルトの名無しさん (ワッチョイ 5787-r97/)
垢版 |
2021/04/17(土) 16:44:33.12ID:02JVKjXw0
>>518
ビルドはプロジェクト単位で走るから、早くなると思うよ。
各プロジェクトのソースコードをまとめていじって、まとめてビルドしたら時間は変わらないけど。
※同一ソリューション内にあって、ソリューションごとビルドしても変わらないけど。

dllに分ける必要があるかは個人レベルとか関係ないからやってみたら?
そんで色々考えるのがいいと思うし、楽しいよ。
0521デフォルトの名無しさん (アウアウウー Sa1b-B9Cj)
垢版 |
2021/04/17(土) 16:58:25.17ID:3+8Yd0vAa
>>518
そもそもプロジェクトの規模に比例してVSが重くなったりしないと思うよ。
少なくとも「ちまちまやってる」程度なら絶対にありえないと断言できる。
重くなってる理由は他にあるんじゃないのかな

必要性もないのにアセンブリを分ける(dllにする)ことには反対。
0522デフォルトの名無しさん (ワッチョイ 376e-Ho7r)
垢版 |
2021/04/17(土) 17:43:26.21ID:knKDzqXi0
皆さんレスありがとうございます

ソリューション内にプロジェクト分けてそれぞれ書き出したDLLをメインのプロジェクトで
読み込ませて使う・・・メインのビルド(動作テストなど)は軽くなるという理解であってますか?
修正があれば、そのプロジェクトだけビルドし直す、
最終的な製品にするインストーラー生成時はかわらないと

>>521
かれこれ2年近く機能拡張続けていて、Form画面だけで300くらいで
それとほぼ同数のサードパーティ製の表形式コントロールやら帳票やらもある感じです
vsフォルダ作り直したり、VisualStudioの軽量化はいろいろ試して
多少は軽くなってますが、ファイル数が多ければビルドに時間がかかるし
InteliSenseやエラーの出力など、プロジェクト内のファイル数が多ければ多いほど
そのための処理が入るのかなと思ったのですが違うんでしょうか

何分素人レベルなので、デバック→エラー→修正→デバック→の繰り返しでなんとかやってるので
ビルドの速さが結構切実だったりします
0525デフォルトの名無しさん (ワッチョイ bf62-rOyz)
垢版 |
2021/04/18(日) 12:09:57.65ID:v8qpskqd0
普通にソース書いてデバックするだけのプロジェクトなら差分ビルドでそんなに時間がかかるイメージないけどな
別の要因が色々出てきそうだけど、まあ分割して解決したらいいね
0526デフォルトの名無しさん (ワッチョイ 9f84-Ho7r)
垢版 |
2021/04/18(日) 13:43:19.23ID:jmo1IQPt0
makefileとかだと依存関係が正しくなくて差分ビルドのつもりでも全ソース
フルビルドになっていたとかあるけど
あと、サードパーティーのコントロールとかって話なので、パッケージが
なんでも無条件にフルビルドするので、自分の修正とは関係ないところで
ガンガンビルドがはしっているとか
0531デフォルトの名無しさん (アウアウクー MMd2-n2ja)
垢版 |
2021/04/23(金) 13:10:42.79ID:gxfm9rdtM
VisualStudio2019のクエリビルダー使ってFillを生成してるんですが、
クエリビルダーの「クエリの実行」ではパラメータに「%」使って目的のデータを取得出来るのに
生成したFillの「データのプレビュー」でパラメータに「%」使うと何もヒットしないという現象が起きてて途方に暮れてます
ちなみにアンダースコアは任意の1文字で検索してくれるので初心者女子高生の私には
もう原因さっぱり判りませんの(´・ω・`)
0532デフォルトの名無しさん (ラクッペペ MM34-Edqn)
垢版 |
2021/04/23(金) 13:16:05.78ID:CEwDMyU+M
Fillを生成?
0535デフォルトの名無しさん (ワッチョイ 8768-xm3u)
垢版 |
2021/05/03(月) 23:04:24.90ID:XKJBqUJn0
自力で簡易なセキュリティソフトを作りたいと思っています。
動きは単純で、登録されていない実行ファイルが勝手に外部に通信しようとしたらブロックするだけのものです。
AVASTがやってる動きです。
何らかのAPIをフックするのだろうという事は想像できますが、取っ掛かりが分かりません。
どのAPIを見れば良いのかご存じの方いらっしゃいますでしょうか?
0538デフォルトの名無しさん (アウアウクー MM73-XxK1)
垢版 |
2021/05/13(木) 18:58:32.33ID:I198/5nSM
wpf でtabcontroleで複数タブにrediobutton配置支店ですけど
これを全部一つのグループにすることってできないんですかね?
groupname指定しても駄目だったので仕様的に方法なしなんでしょうか……(´・ω・`)
0540デフォルトの名無しさん (ワッチョイ fb24-jjtP)
垢版 |
2021/05/13(木) 23:35:30.68ID:MnuHueii0
>>535
明らかにC#の範囲外の質問でOSハックレベルの話だが、例えばWindowsならカーネルドライバを利用した通信フックライブラリはいくつかあったはず
んでTCPやUDPのソースポートから発信元プロセスは特定できるからそれくらいならすぐ作れるだろうけど
想像以上に多くのシステムプロセスが通信してるから登録するのめんどそうだけどな
0541デフォルトの名無しさん (アウアウクー MM23-Ji+2)
垢版 |
2021/05/14(金) 19:19:35.19ID:hD9Eg79MM
>>539
バインディングなんてわかるわけ無いだろ!(`;ω;´)
もう仕方ないからボタンと背景色でタブっぽい見た目作ってラジオボタンをVisibleったりhiddenったりしてそれっぽいの作った……
0542デフォルトの名無しさん (ワッチョイ 3344-Adon)
垢版 |
2021/05/16(日) 04:48:26.69ID:CGr30bxH0
functorに関する質問です
C++で次のように書いとけば

template<typename Functor>
double Example( Functor func,・・・){

呼出し時に、引数funcに関数へのポインタでも、ラムダ式でも、関数名でも記述できますが、
C#で同じように、引数に、デリゲートでもラムダ式でも関数名でも記述可能にするにはどーすればいいのでしょうか?
0543デフォルトの名無しさん (ワッチョイ ab2c-mHP1)
垢版 |
2021/05/16(日) 08:50:12.74ID:8qTwOc620
> 引数に、デリゲートでもラムダ式でも関数名でも記述可能にするには
デリゲート型を指定すればいい
double Example<T>(Func<T, double> func, T obj) { ... }

double ToDouble(Hoge hoge) { return hoge.Value; }
this.Example(obj => obj.Value, hoge);
this.Example(ToDouble, hoge);
this.Example(new Func<Hoge, double>(ToDouble), hoge);

ただしシグネチャが同じでもデリゲート型が違うと無理なのでラムダ式なりとおす必要がある
delegate TRet Converter<TArg, TRet>(TArg arg);
var conv = new Converter<Hoge, double>(obj => obj.Value);
this.Example(conv, hoge); // エラー
this.Example(obj => conv(obj), hoge); // OK
0544デフォルトの名無しさん (ワッチョイ e1da-jjUc)
垢版 |
2021/05/18(火) 04:46:17.76ID:MJ7hOma30
System.Collections.Generic.List<System.String> hips =
new System.Collections.Generic.List<System.String>(0);
hips.Add(@"尻");
hips.Add(@"ケツ");
hips.Add(@"Buttocks");
hips.Add(@"んまら");
hips.Add(@"臀");
hips.Add(@"ω");
hips.Add(@"Hip");
foreach (System.String hip in hips) {
System.Console.WriteLine(hip);
}
0545デフォルトの名無しさん (ワッチョイ fa07-Mbt4)
垢版 |
2021/05/22(土) 21:17:48.56ID:ylKhWhlM0
俺のツレの先輩がc#プログラマに酷い目に遭わされたことがある

c#プログラマから金借りて返さんかったら、拉致られて拷問うけた
指の爪全部ペンチで剥がされてその後ペンチで指先を挟んで潰されたらしい
4本目くらいで痛みに耐え切れなくて舌噛み切って死のうとしたけど死ねなかったって
命までは取られなかったけど指先全部駄目になって切断したみたい
0548デフォルトの名無しさん (ワッチョイ 796e-PRuz)
垢版 |
2021/06/05(土) 14:12:36.14ID:Zn+ZYGmH0
メモリ不足での相談です

小さいjpg画像ファイル(1ファイル50KB程度)を10,000ファイル程度
サードパーティ製のGridViewに投げ込んで表示させようとしてます
その前にList<Image>に下のような感じでStreamで投げ込んでいくのですが

var fs = System.IO.File.OpenRead(@filepath);
ListData = new Bitmap(Image.FromStream(fs, false, false));
fs.Dispose();

4000ファイルあたりでメモリ不足に陥ります
VSの診断ツールで見ていると、読み出しはじめて4GBで止まります
メモリが4Gでアウトになっているのは理解できるのですが
ローカル上のファイルの総データ量は800MB程度で、実際に読み込みがとまるあたりでは
せいぜい200MB程度読み込んだ程度と思います
2000ファイル程度にグループごとに都度分けて読み込ますしかないかなと思っていますが
確認すべき点(余計に容量食っている要因)やなにか他に方法があったらご教授ください
0552デフォルトの名無しさん (ワッチョイ 5573-EGuX)
垢版 |
2021/06/05(土) 17:36:11.90ID:L7L31nHe0
32bit優先が付いてるとか?
ただどっちみちアプリ全体どころか、1つのリストで4Gもメモリに保持とかは筋がめっちゃ悪いぞ。
4000ものフル画像が同時に必要とかあり得ないし。
表示上必要ならメモリ上にもつならすごく小さなサムネイルをダイナミックに並列処理で作りながら持つとか。
今表示に必要なものだけ、ダイナミックにメモリで並列処理でサムネ作るとかでしょ。
0554デフォルトの名無しさん (ワッチョイ 796e-PRuz)
垢版 |
2021/06/05(土) 19:41:37.20ID:Zn+ZYGmH0
>>552
やっぱり、そうですよね
実際には10000ファイル越える予定だったのでなおさらですよね
スクロール時のスピード感は多少落ちますが
素直にグリッドコントロールが描画する際に都度読み込むようにすることにします
0555デフォルトの名無しさん (ワッチョイ 55e4-uikQ)
垢版 |
2021/06/06(日) 18:25:06.49ID:qxB2AhqX0
>>554
良い悪いは置いておいて、とりあえずファイル郡をまとめて読み込んでおくのが
目的で、Bitmapで変換するとメモリを消費してしまうのならば、ファイルの内容を
Streamの配列に読み込んでおいて、表示するときにBitmapで変換するとか
そして表示するだけならばBitmap使わなくてもImageでStreamから読んで
DrawImageでよいんじゃないかなとか
0557デフォルトの名無しさん (ワッチョイ ca79-62sI)
垢版 |
2021/06/08(火) 10:18:44.68ID:f9CCCXBt0
要するにサムネ表示したいんだろ
SSDなら1万ファイルの読み込みにもそんな時間掛からんし
ファイルをインデクス化して画面に出る部分だけ都度読み込んで描画すればいい
グリッドビューなんて必要かね
0558デフォルトの名無しさん (ワッチョイ 2d24-p9zx)
垢版 |
2021/06/10(木) 16:49:33.11ID:r3+xqCr00
仮想化すればいいだけの話じゃん
何兆個のファイルがあろうとどうせ表示される項目は多くても数十なんだからスクロール位置などから表示すべきファイルだけサムネ表示すればいい
0564デフォルトの名無しさん (スップ Sddf-zwXB)
垢版 |
2021/06/29(火) 12:33:01.69ID:Q5UZxny0d
フォームを開いてその画面での処理中に
Form fs = new FormA;
try{
fs.ShowDialog(); ←ここ
}
catch{}

ここのところでハンドルされてないエラーがでて止まります
FormAでの例外処理などには一切ひっかからず
この場合解決の道筋はどこからでしょうか

ちなみにFormAではwebview2でオフィス365のウェブ版エクセルの新規作成を開こうとするとエラーになります
ワードではでないのですが
ここででるエラーは、System.Runtime.interior services.COMEException
0x8007139Fです
0567デフォルトの名無しさん (スップ Sddf-zwXB)
垢版 |
2021/06/29(火) 20:55:15.95ID:Q5UZxny0d
>>566
すみません、書き間違いです
Form fs = new FormA();

>>565
ググったのですが、webview2がnullなってるのだろうと考えられるくらいで、同じケースはなかったです
そもそもなんでワードは開くのにエクセルはwebview2がnullになってしまうのかわからず、どこの時点でそうなるのか調べたいのですが、FormA側ではcatchできず、上の位置で停止するんですよね
0570デフォルトの名無しさん (スップ Sddf-zwXB)
垢版 |
2021/06/30(水) 00:22:51.11ID:Fi37N+TOd
>>569
FormAにはwebview2を配置していて、ブラウジングさせています
通常のサイト閲覧は何も問題ないのですが、ブラウザ上でエクセルが開けるoffice365を使用中、新規作成で開くときだけ呼び出し元のフォーム(上でこことしたところ)で停止します
既存のエクセルファイルなんかはFormA上のwebview2できちんと開けているのですが
なので、自分で書いた特定のメソッド中のエラーではなく、ページ遷移中に停止し、呼び出し元のShowdialogのところに戻ってハンドルエラーになってしまいます
0572デフォルトの名無しさん (ラクッペペ MMc6-RqJL)
垢版 |
2021/07/03(土) 03:25:24.72ID:ez5RskFXM
ゲイツが収入マイナス7兆円ぐらいで苦しんでる。
c# プログラマから金を集めて、ゲイツに寄付するべきだと思う。

損失の一部 5兆円ほどc#プログラマから強制的に集めたい。国内に5万人ぐらいc#プログラマはいるから、1人1億ぐらい払えばいい。

土地とか家を売ればこんぐらい払えると思う。
払えないひとは肝臓とか売ればいい。
0578デフォルトの名無しさん (ワッチョイ 6f54-SLQ7)
垢版 |
2021/07/05(月) 15:24:59.38ID:ZSz/R5WI0
DBから取得した重複なしの文字列List (要素数約4000) をComboBoxのDataSourceにセットする処理が、
約900ms〜1100msかかり、その間Formが固まるのですが、どうすれば固まるのを回避できるでしょうか。

A5M2でSELECTクエリの所要時間を見ると、だいたい700ms〜900ms台で、ここは改善のしようがなさそうです。
0579デフォルトの名無しさん (ワッチョイ 8e7c-BDhO)
垢版 |
2021/07/05(月) 15:45:29.72ID:5mYpWHh80
ComboBoxで4000の中から選ぶのは大変そうだな
DataSourceに設定する前後にComboBox::BeginUpdate/EndUpdateを呼べば多少は改善すると思う
それ以上はComboBoxじゃ無理じゃないかな 仮想モードもないし
0584578 (ワッチョイ 6f54-SLQ7)
垢版 |
2021/07/05(月) 17:14:42.74ID:ZSz/R5WI0
みなさんありがとうございます。
BeginUpdateとEndUpdateで20〜40msほど早くなりました。

現状、DBからの取得部分は別スレッドにしています。
ただし、フォーム表示時に、
@ComboBox の DataSource に List をセット。
A別の個所で設定した値で、ComboBox.SelectedItemを決定。
BComboBox.SelectedItem に応じて、それに対応するデータを DataGridView に表示。
という処理をしているので、結局ComboBoxへのDataSourceセット待ちになります。

むしろUIと同じスレッドでデータ取得すればスレッド切り替え処理がなくなって微妙に高速化出来るんじゃ?と思ってます。
0585578 (ワッチョイ 6f54-SLQ7)
垢版 |
2021/07/05(月) 17:33:32.24ID:ZSz/R5WI0
データ取得をUIスレッドで行ってみましたが、別スレッドでしたケースと比較して、実行するたびに優劣変わる程度でした。
これ以上の改善は無理そうなのでいったん諦めます。
0587デフォルトの名無しさん (ワッチョイ 6b01-Q9JX)
垢版 |
2021/07/05(月) 17:41:33.62ID:ykFrWqkT0
>>578
転送時に圧縮かけたら高速化するんじゃね

構成わからんからあてずっぽうでいうけど
DBサーバと近いWEB鯖のPHPでデータ一覧取得してJSONとかで転送(要するにPHPでAPI作成)
サーバの設定等でHTTP圧縮をON
圧縮かかってるから転送そのものが高速化される

どうやって圧縮かけるかは他にも色々やり方あるだろうけどね
LAN内に全てそろってる(例えば同一PC内)としてもかなり速くなるはずだよ

クエリで700msってのが気になるけど時間かかりすぎじゃないかな
Explainみた?

プロファイラはどう?昔はEQATEC Profiler使ってたけど今は何がいいんだろうね
どこにどれぐらいの時間がかかってるかわからないと理論値と比較できない

初見の感想は4000件程度で700msもかかってるのが気になる
応答だけ?それとも結果の羅列まで込みの時間かな
クラサバでそんなにかかる処理ってあまりないと思う
0588デフォルトの名無しさん (ワッチョイ 6b01-Q9JX)
垢版 |
2021/07/05(月) 17:46:44.69ID:ykFrWqkT0
そもそも一瞬で取得すれば固まらないからね
あとはUIに先回りして裏で取得するとか、DB側でキャッシュするとか、小出しにしていくとか・・・

まぁ、一番簡単なのは画面にプログレスバー出してめっちゃ高速に処理してる風を装う事とかだけど

ただ、何も知らずに直観でいうと100msは切るはず
0591デフォルトの名無しさん (アウアウウー Sacf-US9C)
垢版 |
2021/07/05(月) 19:11:56.65ID:IA8ZeXCsa
たぶん「犯人」はComboBoxだろうが一応問題の切り分けが必要だと思って
public Form1()
{
  InitializeComponent();
  var asm = Assembly.GetAssembly(typeof(Form));
  var bl = new BindingList<Type>();
  foreach (var item in asm.GetTypes()) bl.Add(item);

  var sw = Stopwatch.StartNew();
  comboBox1.DisplayMember = "Name";
  comboBox1.DataSource = bl;
  Console.WriteLine($"Time = {sw.ElapsedMilliseconds} ms, Number of Items = {bl.Count}");
}
こんなコードを書いてみた。10年前のポンコツPCで実行してるが約2400個のアイテムをぶち込むのに
デバッグモードでも10ms程度の時間しか掛からない。

つまり「犯人」はComboBoxじゃないんじゃないの?知らんけど。
0592デフォルトの名無しさん (ワッチョイ 8e2d-NaZp)
垢版 |
2021/07/05(月) 19:44:16.85ID:ynDVyPDO0
>>591
フォームのコンストラクタで測ってるけど、フォームがロードされた後で測るとかなり変わるよ
うちの環境ではデバッグビルドで、コンストラクタ:3msec、Loadイベント時:226msec
0593デフォルトの名無しさん (ワッチョイ ab2c-Ijop)
垢版 |
2021/07/06(火) 01:07:39.66ID:AJxevGXU0
DB の実行計画を見れば?
インデックスを使わずに、全件探索でもしてるのでは?

2分探索なら、2 ^ 10 = 1,024
2 ^ 12 = 4,096

つまり、12回探索するだけ

ミックの本でも読んだ方がよい
0598デフォルトの名無しさん (ワッチョイ bb2f-Ijop)
垢版 |
2021/07/06(火) 08:54:22.76ID:4hP0mNbe0
約900ms〜1100msの処理のうち
クエリが700ms〜900ms台で、改善のしようがないっていってるんだから
それがホントなら速度的なものはどうしようもないと思うんだが

画面が固まる対策ならクエリを非同期に(正確にはUIスレッド以外で、か)しろで終わりだろ
0607578 (ワッチョイ 6f54-SLQ7)
垢版 |
2021/07/07(水) 03:00:22.72ID:sX4an4wR0
みなさん本当にありがとうございます。

原因は、約4000の要素をDBから取り出す所要時間でした。
約60万レコード内の、文字列カラムのデータを、重複しないように、GROUP BYする処理が時間食ってました。

なので、該当の文字列カラムだけを重複なしで格納するキー一覧テーブルを作り、
データINSERT時に、キー一覧テーブルの既存レコードと一致しない文字列だけをキー一覧テーブルに追加するトリガー処理を作りました。

そして、ComboBox の DataSourceにはそのキー管理テーブルのデータをセットするようにして、表示所要時間を5〜6割短縮出来ました。
0611デフォルトの名無しさん (アウアウウー Sacf-US9C)
垢版 |
2021/07/07(水) 12:33:18.92ID:GxuaumQya
それより結局ComboBoxは何の関係もなかったってことだよね?

つまりボトルネックがどこにあるのか計測して確認もせず思い込みで
ComboBoxが悪いとミスリードな質問をした。

ここは反省して欲しい。
0613デフォルトの名無しさん (ワッチョイ 7f7c-Pyw0)
垢版 |
2021/07/07(水) 13:00:11.32ID:FuIb4wxP0
最初の質問で問題の処理に約900ms〜1100msかかっていてそのうちクエリの所要時間が700ms〜900ms台と書いていて、その上でクエリ以外の部分(約200ms)を改善したいという話だったから測ってないわけではないかと
クエリ部分は改善不可能と思い込んでたのはあるが
0616デフォルトの名無しさん (ワッチョイ 6b01-Q9JX)
垢版 |
2021/07/07(水) 15:26:49.85ID:jKQg8TjQ0
FormのLoadで何も表示されないまま1秒以上かかるとかなり固まった感は強い
だからスプラッシュやプログレスバーというのは非常に大事
これがあるだけでクレーム率はかなり下がる

速度最適化というのは実際のレスポンスやスループットだけではなくて
体感速度も最適化するべきなんだ
0624デフォルトの名無しさん (アウアウウー Sacf-US9C)
垢版 |
2021/07/07(水) 20:54:47.64ID:GxuaumQya
>>613
なるほどね。読み返してみると確かにそういう風に読めないこともない。
でもその解釈だと辻褄が合わないように聞える部分もいろいろあるね。
まあ揚げ足取りは本意じゃないのでこれで
0631デフォルトの名無しさん (ワッチョイ 355f-xNKK)
垢版 |
2021/07/10(土) 10:35:48.26ID:o1Fr1a0g0
メインウィンドウが開かれるのに時間がかかる場合って自動的にマウスカーソルに砂時計付くよね
これってWindows 10だけの機能なのかな?
スプラッシュはそういうことに気付かない人にはわかりやすいからいいと思うけど
0636デフォルトの名無しさん (ワッチョイ f573-DcAx)
垢版 |
2021/07/12(月) 14:04:49.78ID:DOYT8O/O0
ひとが使いためのライブラリ作らない限りテクニックなんかロクに身に付かんでしょ。
テクニックが要らないように作られれてるのが人気があるライブラリなんだから。
0637デフォルトの名無しさん (ワッチョイ 8d54-8NFQ)
垢版 |
2021/07/12(月) 17:05:33.06ID:ihSDWtOf0
async・awaitを使った非同期処理の並列処理数をSemaphoreSlim使って制御しています。

https://qiita.com/tadokoro/items/28b3623a5ec58517d431
を見ると、SemaphoreSlimのパフォーマンスはそこまで良くないらしいんですが、async・awaitを使いつつパフォーマンスを上げる方法はないでしょうか?
並列処理数の上限は4が理想です。※多ければ多いほどいいのはいいです。

SemaphoreSlim semaphoreSlim = new SemaphoreSlim(1,4)
await semaphoreSlim.WaitAsync();
try {
await 自分の非同期メソッド
}
finally {
semaphoreSlim.Release();
}
0640デフォルトの名無しさん (ワッチョイ a301-knaX)
垢版 |
2021/07/12(月) 18:33:51.33ID:4WArcuIG0
>>637
そのベンチマークは同期のオーバーヘッドを気にするくらい
ゴリゴリ共有リソースにアクセスする場合のための比較だから
4並列でawaitするような処理をする場合とは全然違うものじゃない?
0642637 (ワッチョイ 8d54-8NFQ)
垢版 |
2021/07/12(月) 19:21:57.66ID:ihSDWtOf0
>>638-640
ありがとうございます。
必要な場所にだけ lock 使うようにします。
lock 不要に出来るかも検討してみます。
0646デフォルトの名無しさん (ワッチョイ 5524-TYDt)
垢版 |
2021/07/16(金) 12:30:58.12ID:81zoecY+0
コーディング規約に従え
個人的には使わないし他人が使ってても気にしない
メソッド1個ずつにregionあったらちょっとうざいけど、ショートカット一発で全部開けるしどうでもいいかな
0647デフォルトの名無しさん (アウアウウー Sa39-yayT)
垢版 |
2021/07/16(金) 12:53:50.69ID:QqSxNnhma
>>646の言う通り
うちには規約にregionについての記載があるのでその通りにしなかったらレビューの指導対象
こんなことをここに書き込むと言うことは
>>644は規約を読んでないか規約そのものがないかのどちらかだと思うけど
0649デフォルトの名無しさん (ワッチョイ 6e62-COnk)
垢版 |
2021/07/17(土) 11:35:23.95ID:tiRnOuXY0
regionは規約がないなら使わないのが無難
特に〜のプロパティ、〜のメソッドみたいな囲いかたは最悪で、今後regionを意識してメンテしなきゃいけないのが面倒
折りたたまないと把握出来ないほどぐちゃぐちゃになってますって言ってるようなものだしね
0651デフォルトの名無しさん (ワッチョイ 4597-jsLU)
垢版 |
2021/07/17(土) 19:23:55.27ID:1SEym9JY0
画面のクラスとかだとregion的な機能つかいたくなることはあると思うけどなあ。
画面って結局、人間にとって都合のいいように複数のデータを出すものなので、そのデータ毎にregion作ったりするのは変じゃないと思うけど。 Formに依存するコードを、 Form外の別クラスに書いたりしたくないじゃん。
0652デフォルトの名無しさん (スプッッ Sdda-S+fN)
垢版 |
2021/07/18(日) 01:36:46.77ID:jHDjUzT3d
コメントを書かない論者と同じ臭いがする

誰が読んでも自然言語と同じレベルで即座に理解可能かつ
解釈の余地の入らない完璧なコードを書けていて
しかもチームの全員がそのレベルに達しているという
地球上に存在しないチームで働いているかのような思い込みをしている
0666デフォルトの名無しさん (ワッチョイ 9142-kbnc)
垢版 |
2021/07/19(月) 10:43:55.05ID:uTNe/jhZ0
partialでクラスを分割してもファイルは1つのままでも問題ない
目障りなコードを#regionより明確に隔離できるから良いんだけどね

まあ1クラス1ファイルの規約が有るなら無理だけど
0667デフォルトの名無しさん (ワッチョイ 9d5f-NvNM)
垢版 |
2021/07/19(月) 20:59:17.78ID:yGPED6YR0
partial→見るな触るな
region→見てもいい触ってもいい

という使い分けになりそう
0668デフォルトの名無しさん (アウアウウー Sa39-E0YB)
垢版 |
2021/07/19(月) 21:29:24.97ID:K3gEK6ANa
そんな教条主義的に考えなくてもいいでしょw

トポロジー的(?)には部分クラスは本の1巻2巻、
#regionディレクティブは章に近い感じがするので必然的に部分クラスの方が
出番は少なくはなるわね。

何のために使うべきか、何のために存在するかってそれじゃ哲学だw
エンジニアリングの発想は「何に使えるか」でしょう
0670デフォルトの名無しさん (ワッチョイ 5ada-RjOe)
垢版 |
2021/07/19(月) 22:17:06.00ID:YnDE/De/0
クラスの一部をT4で生成させたときに手で書いた分とファイル分けてpartialにするのとかやったことはある
regionはIDisposableとかインタフェース実装した時に囲っておくのはよくやるし、
>>669 みたいな使い方するときもある
0671デフォルトの名無しさん (ゲマー MM7e-pZDp)
垢版 |
2021/07/20(火) 07:33:24.30ID:DOoV4fKqM
定数が増えるなら外部ファイル定義にしろ
変数やプロパティが増えるならクラスを分けろ
と思ってるから滅多に無いが、何らかの理由でやむを得ず肥大化した時は>>669のやり方してるな
0672デフォルトの名無しさん (ワッチョイ 6e62-COnk)
垢版 |
2021/07/20(火) 12:11:28.91ID:npAM0kVy0
フォルダ整理と似た話だよね
regionってつまるところデスクトップにアイコン敷き詰めてるやつが画面上で1列空けてわかりやすいでしょって言ってる感じ
フォルダ作るなりツールなりで管理した方がと思うけどそれが本人にはわかりやすいんだろうな
0675デフォルトの名無しさん (ワッチョイ 0154-x4cL)
垢版 |
2021/07/21(水) 04:27:22.47ID:S6x5cz780
多数のクラスが、イベントを相互に Invoke・Listen するようになってきて、
無駄な Invoke・Listen が多数あるような気がする場合、整理するいい方法を教えて下さい。
0682デフォルトの名無しさん (ワッチョイ 4124-cJil)
垢版 |
2021/08/15(日) 08:50:23.66ID:TYMDGwka0
HttpClient周りじゃReadOnlySpan<byte>すらも利用できないじゃん
URLとかヘッダに直接utf8放り込みたいのにstringしか受け付けてくれないし

その点System.Text.Jsonは直接utf8で行けるからまだマシだけど
それでもせめてC++みたいに「u8"あいうえお"」みたいに簡単にリテラルUtf8書けるようにしてほしいわ
byte[]で良いから
0683デフォルトの名無しさん (ラクッペペ MM4f-SXks)
垢版 |
2021/08/21(土) 17:00:29.45ID:gz5mByYnM
C# やってる奴らとかマジで仕事舐めてんだろ
俺なんてくっさいゴミ回収の仕事して、年収たった900万円台やぞ
ゴミの回収は、無かったらお前らだけじゃなく、お前以外の皆全員が困るが、お前らがやってる C# なんて
なくてもお前らやお前の身内以外誰も困らんわボケ
そもそも C# なんてただのお遊びやんけ
頭使ってる? 頭が良い? そんな頭が良いなら、研究者や医者やもっと世の役に立つ仕事に就けよカスが

一部の頭のおかしい意識高い系どもが C# を神格化して
アフターコロナの立派な文化だ! だなんてほざいてるが根本的にやってることは eスポーツと変わらん

そもそも遊びは仕事じゃねーんだわ
ただの遊びでしかないもので客から金を巻き上げて立派な仕事だの崇める
まさに不労所得じゃねーか
そして不労所得者に向けられた言葉
「働かざるもの食うべからず」
これ C# プログラマに対する言葉だよ

お前に俺がやってる仕事やらせてやろうか?
熱い炎天下の中を走りながらくっさい生ゴミの入った袋を何百個とひたすら回収する。パッカー車に手を巻き込まれりゃ腕切断してカタワになるリスクもあるんだぞ?
夏も冬も空調の効いた部屋でキーボード打ってるだけのお前らなら3日も持たねーだろうな

でもな、これが仕事じゃ。仕事舐めんなカス
0687sage (ワッチョイ 9fdb-lkNM)
垢版 |
2021/08/21(土) 22:22:26.75ID:+/txNrCq0
>>685
増田で見た.
0689デフォルトの名無しさん (アウアウアー Sa8f-lkNM)
垢版 |
2021/08/23(月) 18:28:34.35ID:zCBpVreAa
間抜けな仕様なのは重々承知なんだけど
c#で作ったアプリケーションでアイコンダブルクリックして起動したあとに
もう一回アイコンダブルクリックしたときに
新しいプロセス起動させないで
すでに起動してるプロセスのmainwindow以外の
window起動させることできないですかね?
0697デフォルトの名無しさん (ワッチョイ c936-U7Lh)
垢版 |
2021/09/01(水) 15:52:06.13ID:Bk82infv0
.NET5でないと動かないライブラリがあるので.NET5をインストールしたいのですが、
↓を参考にしてインストールしても対象のフレームワークには今まで使っていた4.7.2のバージョンまでしか表示されません。
どうやったら5が使えるようになるのでしょうか?
教えてください。


.NET5とVisual Studio2019のダウンロード、インストール | イメージングソリューション
https://imagingsolution.net/program/visualstudio2019v167p1/
0701デフォルトの名無しさん (ワッチョイ ae33-RWBE)
垢版 |
2021/09/01(水) 17:01:44.97ID:xCOolefd0
>>700
もしかして、.NET Framework4.xで作ってある既存のプロジェクトを対象のフレームワークの切り替えだけで.NET5にしようとしてるの?
それは無理だから、>>698が挙げているページにあるように移植作業が必要だよ
0703デフォルトの名無しさん (ワッチョイ 6973-ox3X)
垢版 |
2021/09/02(木) 06:21:25.28ID:CGg78V2s0
それほど複雑じゃ無い(いかにも企業ユースなフレームワーク使ってるとかで無い限り)プロジェクトなら.net frameworkのソースそのままで.net5としてコンパイル出来る。

ついでにいうとこういった複雑でないものは、.net frameworkのまま、.net5から参照可能。
0704デフォルトの名無しさん (ワッチョイ 6973-ox3X)
垢版 |
2021/09/02(木) 06:29:18.68ID:CGg78V2s0
一方、net frameworkから.net5を参照するのは無理。
この場合既存部を.net frameworkのままで通したい場合は、
.net5の方は薄くCOMインターフェースでうっスーいラップ挟むのがいいかな。
0707デフォルトの名無しさん (エムゾネ FF22-4thN)
垢版 |
2021/09/02(木) 16:20:15.54ID:4vWPiFe2F
ぐぐーるもたいがいやで
0709デフォルトの名無しさん (ラクッペペ MM66-sNgg)
垢版 |
2021/09/02(木) 18:43:20.96ID:95p8ZRX9M
WINUIも.NET5も遅いし機能少ないくせに
0710デフォルトの名無しさん (ワッチョイ 5f7c-nTGN)
垢版 |
2021/09/03(金) 00:29:45.00ID:AHipKBXs0
初心者用書いたのですが返答こなさそうなのでこちらに書きます(マルチすいません)

GoogleChromeにあるイメージファイルをデスクトップにドラッグすると大抵の場合イメージファイルを保存できますが
これをPictureBoxに直接ドラッグしてイメージを表示させたいです
※URLを取得してからのダウンロードだとjavascriptなどで読めないイメージが多いので他の方法を探しています

これはクリップボードを経由してるんでしょうか?もし経由しているとしたらクリップボードのフォーマットは何を使ってるんでしょうか。
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.dataformats?view=net-5.0
それ以外ならどういう仕組みなんでしょうか、何か手掛かりになるものがあれば助かります。

もし無理なら特定フォルダ作り定期的に監視して増えたファイルをロードしようと思いますが
できればコントロールにドラッグしたいです、よろしくおねがいします。
0711デフォルトの名無しさん (ワッチョイ 6754-Sfec)
垢版 |
2021/09/03(金) 02:23:45.36ID:r8mmW0/q0
https://github.com/davidegironi/advanceddatagridview/releases/tag/1.2.x.3
上記の、AdvancedDataGridViewを使っています。

フィルタリングする為に、
@カラムヘッダークリック
ATreeView表示される選択肢の内、表示しない項目のチェックを外す。
までは動くのですが、選択内容を変更するために、再度カラムヘッダーをクリックすると、Aで非表示化した項目が消えるので、
一度フィルタークリアするしかなくなります。

int型・string型データのカラムだけで発生します。
公式サンプルも同じ状態なのですが、何が原因でしょうか?
0713デフォルトの名無しさん (ワッチョイ c724-bbf9)
垢版 |
2021/09/06(月) 08:50:27.01ID:h/8uTFD00
ref structの強制using欲しいと思うのは俺だけ?
C++みたいな暗黙でデストラクタ呼ばれる方式じゃなくてちゃんとusing書かないとコンパイルエラーになる感じのが欲しい
0718デフォルトの名無しさん (ワッチョイ c724-KrGZ)
垢版 |
2021/09/07(火) 08:29:58.90ID:e368Ab820
環境依存だと他人に使わせるのはちょっと身が引けるな
disposable ref structとでも書いたら絶対Dispose実装しないといけないし絶対using宣言しないといけないってなれば多少アンセーフな機能も公開しやすいんだけど需要は無さそうだな
0720デフォルトの名無しさん (ワッチョイ 27b0-nTGN)
垢版 |
2021/09/09(木) 17:34:11.61ID:qrAI1q0R0
50,000レコード、テキスト換算30MBある(想定最大値)JSONデータを取り回すのに向いている、ローカル用のDBエンジン(SQLiteのような)って何かありますか?
出来れば、Xamarin.Forms(Android)でも動くものを探しているのですが、他の方がどうやっているのか知りたいです
0723720 (ワッチョイ 11b0-dGLa)
垢版 |
2021/09/10(金) 09:13:28.67ID:GizC5utx0
>>722
LiteDB、良さそうですね。ちょっと試してみます。

>>721
俺の知らない別の使い方とか同じ名前の別のRedisがあるのかと思って1時間ググって見たけど、わからんかった。
Redisで、SQLite的な組み込みの使い方があるの? 比較したいので具体的なところ教えて欲しい……
0728デフォルトの名無しさん (ワッチョイ 3dad-CT16)
垢版 |
2021/09/11(土) 11:53:02.01ID:xP5kxsti0
5万レコードぐらいの参照系で頻度が高いものだと結構あって、結局メモリにのせたりしないか?
どうせメモリにのせるし、となると、JSONでもなんでもいいし。
LiteDB推したけど、そういう意味ではRedisはそこまで的外れだと俺は思わんかったぞ。
0733デフォルトの名無しさん (ワッチョイ ea6a-dGLa)
垢版 |
2021/09/12(日) 22:29:29.32ID:LdHcNCka0
ソースジェネレーターって何のこと?
0736デフォルトの名無しさん (ワッチョイ 3d24-wHYb)
垢版 |
2021/09/13(月) 09:23:25.05ID:tAtNAwkK0
>>732
StringBuilderオーバーライドしたSourceBuilder的なクラスがあればミスも無くなってマシになるんじゃないか
もしくはUtf8JsonWriterと同じ感じでもいいな
自分で作れって話なんだけど、ソースジェネレーターってWinFormsのInitializeComponent筆頭に内部では元々あった訳だしMS社内ではSourceBuilder的なクラスは既にあるはずだから公開されるんじゃないかと期待してる
0738デフォルトの名無しさん (ワッチョイ b67c-2Q8u)
垢版 |
2021/09/16(木) 19:12:10.42ID:hnfTT3D30
WebView2でどんなページ開いてもスクロールバーが表示されずページの下の方が見ることができない。
htmlやcssでスクロールバーを非表示にしていないから、WebView2の設定を探してみたけど見つからず。
スクロールバーを表示させるにはどうしたらいいですか?
0739デフォルトの名無しさん (ワッチョイ 0a2c-aIS6)
垢版 |
2021/09/16(木) 20:03:17.64ID:uiNLezeY0
WinForm? WPF?
WPFだと親子関係によっては親が子であるWebView2のレイアウト領域無限に取ったりしてるとか
とりあえずWinFormでもWPFでも特にプロパティとかいじらず普通にブラウザとしてのスクロールバーは出る
0740デフォルトの名無しさん (ワッチョイ b67c-2Q8u)
垢版 |
2021/09/16(木) 20:30:28.11ID:hnfTT3D30
>>739
WinFormです。
普通に出るのですか…何も出ないので残念です。
0743デフォルトの名無しさん (ワッチョイ 9724-IhC7)
垢版 |
2021/09/17(金) 12:45:26.99ID:cxQX6Vfo0
C#のComInterfaceってちょいちょい頭おかしいな
これとかなんやねん

HRESULT IEnumFORMATETC::Next(ULONG celt, FORMATETC *rgelt, ULONG *pceltFetched);

IEnumFORMATETC.Next(int celt, FORMATETC[] rgelt, int[] pceltFetched);

C#風にラッピングするなら普通はこうやろが
int Next(FORMATETC[] rgelt, ref int pceltFetched); //Span<FORMATETC> rgeltなら尚良し
0744デフォルトの名無しさん (アウアウウー Sa5b-hED7)
垢版 |
2021/09/17(金) 13:49:09.55ID:oDWWsmOUa
自動機械で生成したっぽいな
0745デフォルトの名無しさん (ワッチョイ 171d-QiSa)
垢版 |
2021/09/17(金) 14:53:12.40ID:J/w/zJeW0
WEBフリーランスで年収1000万円超えないのはどう考えてもおかしい
https://www.youtube.com/watch?v=LoXe8iFAsVs
エンジニアは技術力磨きすぎても金になりません
https://www.youtube.com/watch?v=lM7bc6vX-3M
エンジニアはお金を追求してはいけないという年寄りを論破してみた
https://www.youtube.com/watch?v=qJHCmxFv718
エンジニアが教えるの下手くそな理由を論理的に解説してみた【教育の本質】
https://www.youtube.com/watch?v=3YwyYSj-k2s
派遣エージェントの言う事は9割ウソである理由【カモられない方法】
https://www.youtube.com/watch?v=8DxQFLAuFqo&;t=231s
IT業界のヤバすぎる落とし穴5選
https://www.youtube.com/watch?v=WPPCJ4o-mpA
絶対にエンジニアになってはいけない人とは【ハイクラス人材】
https://www.youtube.com/watch?v=kKUC7rZRUtc
【エンジニア】正社員/派遣社員/フリーランスのメリット・デメリットについて
https://www.youtube.com/watch?v=fTG-eMpwhCg
プログラミングスクールを否定する老害どもについて
https://www.youtube.com/watch?v=K2SN-Rr0PgY&;t=506s
0748デフォルトの名無しさん (ワッチョイ 1e4b-CG/S)
垢版 |
2021/09/27(月) 12:05:22.09ID:KmbMbzSx0
public Foo<T>(byte[] dat) where T : new() { 〜 };
という定義の関数があります。通常は
var IntData = Foo<int>(dat);
とやって、バイト配列からインスタンスを作成するのですが、Tの部分をType型の変数を使ってインスタンスを作成したいのです。
上記の例でいうと
int intValue = 0;
var t = intValue.GetType();
var IntData = Foo<t>(dat); // 型ではなく変数なのでエラーとなる
とやりたいのです。

なにか方法はないでしょうか。
0753デフォルトの名無しさん (ワッチョイ 1e4b-CG/S)
垢版 |
2021/09/27(月) 15:54:49.55ID:KmbMbzSx0
>>749
説明を簡易にするためにintにしましたが、実際はclass/struct定義を指定して、
byte配列との相互変換するための自作ライブラリです。
クラス内クラスといった入れ子状態でも動くようにするために、内部から自分自身を
再帰呼び出しするのに、Type型の変数からジェネリックでの呼び出しが出来るように
したいわけです。
0754デフォルトの名無しさん (アウアウウー Sa43-t/PR)
垢版 |
2021/09/27(月) 15:57:14.59ID:/3k3jyoNa
>>748
これならできた
static class Extensions
{
  static T Foo<T>(this T x, byte[] dat ) where T:new()
  {
    return new T();
  }
}

型推論はコンパイラの機能。
実行時に決まる型をコンパイラに推論しろってのは無理筋
0757デフォルトの名無しさん (ワッチョイ 9f24-2Lmd)
垢版 |
2021/09/27(月) 16:33:19.87ID:NYWmPD2Y0
C#の標準ライブラリにもよくジェネリック版関数とType版関数があるようにそれ真似ればええだけやろ
後からジェネリック版が続々と追加されたことからも分かるようにType版はリフレクションに頼る羽目になるのでパフォーマンスに劣るがな
そういやネットワークメッセージをルーティングするにあたってそのたびにDynamicInvokeしてるバカなコード書いてる奴思い出したな
0759デフォルトの名無しさん (アウアウウー Sa43-t/PR)
垢版 |
2021/09/27(月) 16:41:12.52ID:/3k3jyoNa
>>756
そっちこそ何を言ってんの。
ジェネリックの型テンプレートはコンパイル時に確定している必要がある。

それをType型の変数tの値(当たり前だが実行時に決まる)からコンパイル時に
推論できるの?
0760デフォルトの名無しさん (ドコグロ MM33-c1VD)
垢版 |
2021/09/27(月) 16:56:38.77ID:J3rlWY70M
>>759
>>748には
> int intValue = 0;
> var t = intValue.GetType();
> var IntData = Foo<t>(dat);
って書いてあるけどやりたいのは
int intValue = 0;
var IntData = Foo<decltype(intValue)>(dat); // もちろんC#にはdecltypeはないからエラーになる
だろ
コンパイル時にintValueの型はわかってるから原理的にはできるはず
0763デフォルトの名無しさん (ワッチョイ 7212-2yZa)
垢版 |
2021/09/27(月) 17:19:29.24ID:6TsnNU9s0
>>762
var t = intValue.GetType();をする方がめちゃくちゃ気持ち悪い
GetType()はオブジェクトヘッダからタイプ情報を抜き出すっていう実行時処理だからそれこそ求めてるものとは全く違うと思うけどな
逆にジェネリックは完全にコンパイル時計算なので>>761とか>>754ならほぼ確実にインライン展開される
0768デフォルトの名無しさん (ワッチョイ 1e4b-CG/S)
垢版 |
2021/09/27(月) 17:47:27.75ID:KmbMbzSx0
>>755
後出しですみません。
既存の機器と通信するためにByte配列との相互変換なのですが、
BCDとか、エンディアンの指定があるんです。
なので、BinaryFormatter は使えないんです。

>>761
なんとかなるかな?
ちょっと試してみます。
アドバイスありがとう。
0771デフォルトの名無しさん (ワッチョイ 7f01-NT4g)
垢版 |
2021/09/28(火) 15:45:06.15ID:MCa79m/M0
久しぶりにC#で書いてるんで勘違いしてたら悪いんだけど
var str = "abc";
で、strがstring?になるんだけど前からこうだっけ?
非null型にするには string str って書かないといけないんだっけ?
0777デフォルトの名無しさん (ワッチョイ 736e-lQk+)
垢版 |
2021/10/06(水) 20:28:42.14ID:E0v4aPqh0
ネットワークドライブ上のNASに映像ファイルをコピーする処理をTaskで非同期処理を
おこなっているのですが、たまーにネットワークがきれるのかNASの問題なのか
転送がとまったきりになります

CancelTokenでファイルごとにキャンセルは入れられるよう進捗ウィンドウを作ってるのですが
File.Copyが1つのファイルで走り始めてから止まり、Exceptionも吐かないので
中断処理入れようにもどうにもならず

とりあえずApplication.Exit()でアプリごと落としてお茶を濁しているのですが
なにかうまい方法ありますか?
0781デフォルトの名無しさん (アウアウウー Sa27-Q4Ob)
垢版 |
2021/10/06(水) 23:26:50.78ID:9/4lkKr3a
>>777
問題を良く理解してないけど
まあ生ThreadならAbortできるね。

昔はデッドロックするバグがあるネイティブdllの関数呼ぶときにはこれ使ってた。
さすがに今時は別の方法が用意されてるはずだと思うけど
0783デフォルトの名無しさん (ワッチョイ 635f-GJBa)
垢版 |
2021/10/08(金) 20:11:01.95ID:TjcV2IEr0
>>771-773
これすごい機能だな
.NET 6から新規プロジェクト作成するとデフォルトで有効になると書いてある
引き継いだから知らなかった
0784デフォルトの名無しさん (ワッチョイ 3b6e-twAR)
垢版 |
2021/10/17(日) 11:37:08.06ID:h6ZKeWCX0
>>780 >>781
レスありがとうございます 返信遅くなりました
参考にいろいろやりましたが結局FTPで切断して中止させる方が簡単で
送信データ量などの進捗が拾えて残り時間の計算も簡単なので
NASとFTPでやりとりすることに落ち着きました
0785デフォルトの名無しさん (ワッチョイ 8b24-an4T)
垢版 |
2021/10/18(月) 18:50:18.68ID:+thFiXiN0
MSの.NETチームってアジア人少ないのか?
表に出てくるメンツ見てると黒人とかラテンアメリカンはちょいちょいいるのにアジア人がほぼいないんだが、
アメリカのIT企業って総じて黒人よりアジア人の方が従業員比率高いはずなのにおかしいだろ
ポリコレソードで一刀両断して良いか?
0788デフォルトの名無しさん (ワッチョイ 7b28-Avck)
垢版 |
2021/10/19(火) 09:12:00.45ID:dghFXsSl0
ブリザードの闇を知ってからはアメリカのIT業界も色々とやべぇんだなとは思った
ああいう闇があるからこそ日本人からは到底理解できないようなポリコレが流行るのも致し方ないと思えるようになったわ
0789デフォルトの名無しさん (ワッチョイ ef4b-0ECy)
垢版 |
2021/10/19(火) 10:22:17.02ID:PEqeSIiy0
Streamで非同期のreadを行っています。Stream.BeginRead(〜);
このBeginReadをキャンセルするにはどうすれば良いのでしょうか。

通常の読み込みだと、BeginReadで指定したコールバック先でStream.EndRead(〜);を実行するのですが、1バイトも受信していない場合、EndReadを実行すると待ち状態になってしまいます。
0794デフォルトの名無しさん (ワッチョイ 1f2c-tOpD)
垢版 |
2021/10/19(火) 15:37:59.83ID:cm6tlOC00
デッドロックは言葉の使いどころが違うと思う

ReadAsyncでCancellationToken渡したとしても
CancellationTokenSource.Cancelでキャンセルできるかどうかは具象クラスの実装次第なのに注意
.NET Core系は多分問題ないと思うけど.NET Framework系はあんまりサポートしてない印象
0796デフォルトの名無しさん (ワッチョイ 9fe4-k6xU)
垢版 |
2021/10/19(火) 18:22:02.29ID:yAs/qSwO0
>>789
適当なこと書くけど、コールバック先の中でEndReadするのだと、データの読み取りが
完了しない限り実行されないのでダメなのではないかな?
やるならばBeginReadの返却値であるIAsyncResultの内容を保存しておいて、Read
処理をやめたくなったら、保存しておいたIAsyncResultの値をEndReadに指定して
呼び出すんじゃないのかな?
0797デフォルトの名無しさん (アウアウウー Sacf-Avck)
垢版 |
2021/10/19(火) 18:27:10.49ID:5eWBXwewa
>>794
確かに「自分で自分の処理が完了するのを待つ」
状態に陥ることを指す場合が多いけど、
単純に何かの処理が終わらないことや終わらないことも
デッドロックと言うと思うけどね。

>>795
それならReadをキャンセルする必要なんか最初からないのでは?
0804デフォルトの名無しさん (ラクッペペ MM7f-xEoX)
垢版 |
2021/10/19(火) 19:26:02.78ID:NUYGeUrwM
デッドロックとは
対策に徹夜で3日以上かかるバグの事を指す
0807デフォルトの名無しさん (ワッチョイ 0f2c-4HJo)
垢版 |
2021/10/19(火) 22:15:54.02ID:P+gkhAFH0
組み込みの資格の問題集では、
デッドロックは、資源のたすき掛け

タスクA が、資源X, Y の順にロックして、
タスクB が、資源Y, X の順にロックする

ここで、どのタイミングでデッドロックが起きるか、という問題
0809デフォルトの名無しさん (アウアウウー Sacf-mxW8)
垢版 |
2021/10/20(水) 09:16:14.30ID:OEiI06HQa
>>804
発見に3日以上
対策は3秒
だろ
0810デフォルトの名無しさん (アウアウウー Sacf-mxW8)
垢版 |
2021/10/20(水) 09:18:08.43ID:OEiI06HQa
>>806
OK
0811789 (ワッチョイ ef4b-0ECy)
垢版 |
2021/10/20(水) 09:47:41.27ID:JvBM85mK0
最初から説明すると、やりたいのは.NET5のWorkerServiceで作成したWindowsサービスの状態をタスクトレイに表示することです。
Windowsサービスから直接タスクトレイに表示する事が出来ないということで、タスクトレイ表示用のフォームアプリを作成。
両者間でプロセス間通信を行い、フォームアプリからWorkerServiceへの問い合わせという形では問題なく通信できました。
※フォームアプリ:送信専用/WorkerService:受信専用

ただ、WorkerServiceの状態が変わるのは希なことなので、フォームアプリから頻繁に問い合わせるのは無駄が多いので、
フォームアプリからWorkerServiceへの接続以外はWorkerService側からのPush通信を行うように修正しました。
フォームアプリ:受信待機、WorkerService:送信。WorkerService:受信待機、フォームアプリ:送信のテストは正常に終わりました。
送信はいつ発生するかわからないため、双方を受信待機にしたところ、その状態では送信が出来ません。
受信待機状態で無ければ送信出来るのは確認しているので、受信待機を解除出来れば送信出来ると考え、その方法を探している途中です。

>>806
上に書いているとおり、受信待機状態で無ければ送信できます。もちろん、受信待機状態で相手から送信されれば受信できます。
実際にテストし、確認しています。
0812789 (ワッチョイ ef4b-0ECy)
垢版 |
2021/10/20(水) 10:34:02.67ID:JvBM85mK0
>>796
コールバック先ではなく、送信用関数の頭でキャンセルするようにしています。
BeginReadの返り値を保存。キャンセルしたい場所でEndReadの引数に渡すようにしているのですが、EndReadを呼び出すとそのままだんまりです。
なので、なにか手順でもあるのかと思い、検索をかけたのですが解決法がわからないため、ここで質問しました。
0813デフォルトの名無しさん (アウアウウー Sacf-mxW8)
垢版 |
2021/10/20(水) 10:39:51.36ID:OEiI06HQa
>Windowsサービスから直接タスクトレイに表示する事が出来ない

サービスの登録で「デスクトップとの対話を許可」してあれば表示出来ますよ?
0815789 (ワッチョイ ef4b-0ECy)
垢版 |
2021/10/20(水) 10:51:47.47ID:JvBM85mK0
>>813
.NET 5 ではサポートされないと、どこかで読んだ覚えが・・・
参考になるWebPage等あれば教えてください。
直接やった方が単純なので・・・
0816デフォルトの名無しさん (アウアウウー Sacf-mxW8)
垢版 |
2021/10/20(水) 11:37:20.61ID:OEiI06HQa
Windows 管理ツール
→ サービス
サービス名で右クリックしてプロパティ → ダイアログ → ログオン
「デスクトップとの対話をサービスに許可」にチェック

HKLM\\SYSTEM\\CurrentControlSet\\Control\\Windows\\NoInteractiveServices
0にする必要があるかも
0817789 (ワッチョイ ef4b-0ECy)
垢版 |
2021/10/20(水) 14:16:23.47ID:JvBM85mK0
>>816
教えていただきたいのは設定の方法ではなく、.NET 5のServiceWorkerでタスクトレイにアイコンを表示する方法です・・・
0818デフォルトの名無しさん (ワッチョイ 1f2c-tOpD)
垢版 |
2021/10/20(水) 15:27:59.69ID:G+Qou/Ta0
さすがにサービス作るのは面倒だから同一プロセス内で試しただけだけど
BeginRead中に普通にWriteできたよ
NamedPipeXxxStreamをnewする時にPipeOptions.Asynchronous指定してる?
0822デフォルトの名無しさん (アウアウウー Sacf-Avck)
垢版 |
2021/10/20(水) 18:07:28.07ID:jvdlGdZPa
レジ袋有料化みたいな話だね

ただ、批判する意図はないけど、位置の概念がないストリームなら普通「全二重」であるはずだ、
ってのはちょっと考えれば気づけたはずじゃなかなとは思う
0825デフォルトの名無しさん (アウアウウー Sacf-Avck)
垢版 |
2021/10/21(木) 12:25:32.61ID:8qSe0EAma
イキり馬鹿には「普通は」って文字が読めないんだな
0827デフォルトの名無しさん (アウアウウー Sacf-Avck)
垢版 |
2021/10/21(木) 14:41:10.46ID:hTdTaobFa
r/wを排他的にせざるをえない必然性や制約が存在しない限りわざわざ排他的にする合理性はないというだけの話。
馬鹿じゃないの。

というか、例えば2.0までのUSBは物理層が「半二重」だが、上位の層ではそんなことを
意識する必要はないようにしてある。

そんな制約を意識する必要があったらやってられないからだ。
必要もないのにそんな制約を課す馬鹿がどこにいる
0828デフォルトの名無しさん (ワッチョイ 4b97-FvN9)
垢版 |
2021/10/21(木) 16:22:37.02ID:vKSzbwpZ0
双方向に通信できるか、一方向にしか通信できないことと、全二重半二重は別の概念じゃない?
双方向通信になって初めて半二重なのかと考える必要があるし、そもそもIPCをOSのAPIで使ってるときにそんなにシビアに考えることかな?という気がする
0830デフォルトの名無しさん (ワッチョイ fb2f-4HJo)
垢版 |
2021/10/21(木) 22:48:54.75ID:JzKHPePF0
>>825
お前の言う「普通」はお前の思い込みだって指摘だが、普通が読めないとかどっから出てくる話だ

そもそも位置の概念と双方向か片方向かは関係ないし
双方向のストリームは全2重であるべきだって意見なら理解しないではないが
お前の希望が普通に実装されてるとは限らんのだよ
0831デフォルトの名無しさん (アウアウウー Sa45-fDtU)
垢版 |
2021/10/22(金) 03:27:01.26ID:OMPuRiy7a
白鳥は普通白い、というのは全称命題(黒い白鳥はいない)ではない。
イキり馬鹿って本当に馬鹿で笑えるねw

ファイルのように位置の概念があるストリームでは排他的にr/wされたら困るだろうw
馬鹿じゃなかろうかマジで
0833デフォルトの名無しさん (アウアウウー Sa45-fDtU)
垢版 |
2021/10/22(金) 03:58:09.76ID:OMPuRiy7a
最近ヤフコメの規制が話題になってるけど、
webくんだりで他人に居丈高な態度を取る奴の動機の源泉(うだつ上がらない)
なんて見え透いてるよねw

別にうだつ上がらないのは悪くないが(俺もそうだし)
いい歳こいてそういう自分の動機を自覚できないのも、他人から自分がどう見えているかを
意識できないのもかなり痛々しいよねえw
0836デフォルトの名無しさん (ブーイモ MMe6-d2PL)
垢版 |
2021/10/22(金) 08:47:26.63ID:oVr78/SWM
>>831
普通のファイルのシークしながらの読み書きなら困る、はわかるんだけど、
それを一般化して、位置の概念のあるストリームで「普通」成り立つべき性質なのかよくわからない。
後学のために、いい例を教えてくれないか?
0837デフォルトの名無しさん (ワッチョイ 12bd-dMWn)
垢版 |
2021/10/22(金) 11:28:17.10ID:J+jDEcsH0
そもそもファイルストリームって(単一ファイルでは)双方向通信に使えるものじゃないから、
全二重という思い込みがよく分からないし
ワッチョイ的にデッドロックの意味勘違いしてた人っぽいし
全般的に用語の使い方がいい加減な人なんだろうなと思った
0839デフォルトの名無しさん (ワッチョイ 0d2f-iBLV)
垢版 |
2021/10/22(金) 12:08:46.46ID:V0jARYip0
双方向のストリームなら、非排他的にアクセスされると困るという意見ならまあ理解はできる

排他的とか、自分以外のアクセスの話で、自分が全2重でアクセスできるかどうかとは無関係だがな
0841デフォルトの名無しさん (アウアウウー Sa45-fDtU)
垢版 |
2021/10/24(日) 03:48:37.41ID:Ebis89vva
>>837
俺が用語を正確に使ってないのでなく君に読解力がないだけじゃないのかな。

俺はファイルストリームは「半二重」だと言ってるんだよ。わざわざ括弧を付けて。
括弧を付けているのは全二重/半二重という用語は普通はストリームを対象にした
用語ではないからだ。
0846デフォルトの名無しさん (アウアウウー Sa45-fDtU)
垢版 |
2021/10/24(日) 12:24:26.91ID:kMf1w+hQa
だいたい双方向とか片方向とかいう話がどっから出てくるのw
意味がわからないよ

だから、必要もないのにr/wを排他的にする制約を課す馬鹿っているの?って話をしてるんだけど
0847デフォルトの名無しさん (アウアウウー Sa45-fDtU)
垢版 |
2021/10/24(日) 12:31:01.70ID:kMf1w+hQa
次の展開予想すると、>>843みたいな人はたぶんそれでも片方向/双方向の違いに固執して
「片方向っていうのは片方だけが能動的にr/wすることをいうんだ」みたいな話になるんだろうねw

だから、だから何だよw
この文脈でそれ重要ですか?
0848デフォルトの名無しさん (ワッチョイ 0d2f-/PVD)
垢版 |
2021/10/24(日) 15:32:33.07ID:4lHZz/Ub0
ああ、排他的ってのは自分自身からのリードとライトについて言っているのか
つまりお前の中では、全2重=非排他的 半2重=排他的 ってことなのね
で、片方向っていうのは片方だけが能動的にr/wすること だと

まあこれからも独自路線を行ってくれ。できればひっそりと
0857デフォルトの名無しさん (アウアウウー Sa45-iXiw)
垢版 |
2021/10/25(月) 19:38:31.87ID:L4R2KWZAa
>>852
いい機会だから言っておくか。
それは違う。

言葉というのは置かれた文脈によって意味が変わる、
という中学生でも知っている事実を君が知らないだけじゃないの?

だいたい文脈無視して意味不明な用語法の問題にすり替えて、
それを指摘されてもまだ「おかしいのはお前だ」と言い張る神経が俺には理解できない。
0858デフォルトの名無しさん (アウアウウー Sa45-iXiw)
垢版 |
2021/10/25(月) 19:42:31.57ID:L4R2KWZAa
あと>>833ねw
0859デフォルトの名無しさん (ワッチョイ 1197-d2PL)
垢版 |
2021/10/25(月) 20:07:49.31ID:7NDplVqs0
どうでもいいけど技術的なやり取りをするのに言葉の意味を明確に定義せずにするのは困難しか産まないと思うけどな。

独自用語でもちゃんと定義したらよろしい。

定義なしに文脈によって意味が変わるなんて言ってるのは技術者失格。
0860デフォルトの名無しさん (テテンテンテン MMe6-y5oF)
垢版 |
2021/10/25(月) 22:36:46.73ID:zQaJMovpM
えっちょっと待って
IT用語としての「デッドロック」なんて基本情報レベルな単語だしこの板に書き込むような人なら常識だと思ってたんだけど
>>801なんかはてっきりギャグとして書いてるか、さもなくば
デッドロックって言葉の意味を知らない人を馬鹿にするためにわざと書いてると思ってたんだが
ひょっとして本当に知らなかったの??

でもって無知を恥じるでもなく「読解力」とか言い出して責任転嫁してるの?
「ボクチャンわるくないもん、読み手が馬鹿なのが悪いんだもん」って言ったところで
馬鹿をさらしてる人が言い出したところで説得力ないと思うよ
そのうえさらに自分の語用・論理展開が支離滅裂なのを棚に上げて「文脈」とか言い出して正当化してもなあ
>それを指摘されてもまだ「おかしいのはお前だ」と言い張る神経が俺には理解できない。
その言葉を反芻すべきなのは>>857だと思うよ
0864デフォルトの名無しさん (ワッチョイ 0210-yAT7)
垢版 |
2021/10/26(火) 01:13:31.28ID:qCIhQ9NK0
特定の会社なりグループなりの小さなコミュニティ内で本来の定義とは異なる意味で用語が使われることはある
そのコミュニティ内で齟齬なく意思疎通取れてるならまぁ問題ない
ただその輪から出たら本来の意味でのみ使用すべきだし誤解を招きそうなら補足を入れるなりすればいい

定義にシビアなことが求められる技術者がこういう場で文脈によって変わるとか言っちゃうのはどうかと思う
こういう場というのが便所の落書きじゃん、というなら否定はできんがw
0865デフォルトの名無しさん (ワッチョイ 1d6e-6jfE)
垢版 |
2021/10/26(火) 01:23:54.20ID:ZoC9kawY0
みんなわかっているくせにいつまでも指摘しないのな。

デッドロックは暗礁でも座礁でもない。壊れた錠前のことだ。

https://www.nhk.or.jp/bunken/summary/kotoba/gimon/170.html

IT 用語では、並列処理時に異なるプロセスが、互いが専有するリソースの解放を求めて睨み合い、うごけなくなってしまうリソース競合のことだ。それ以外の意味はない。

一般用語に行き詰まりという意味があったとして、IT 用語としてリソース競合という意味のズバリの状況定義があるのだから、IT に正しい理解がある人間なら、行き詰まりという一般的な意味でこの語を IT 関連の説明に使うことは絶対に避ける。他人に誤解させるし、伝わらないし、紛らわしいのが目に見えているから。

色々な意味で、非常に恥ずかしい部類の誤用。強弁もたいがいにしておくべき。
0869デフォルトの名無しさん (ワッチョイ 2101-qnHn)
垢版 |
2021/10/26(火) 09:42:42.07ID:Lw2w7Q/c0
そもそもdead rockなんて勘違いしてる奴いないじゃん
座礁って言葉使ってる奴はいるけど身動き取れなくなると説明付き
リソース競合ってまた狭い意味だし座礁と同じで狭い意味でデッドロックを使ってる
デッドロック(IT限定)でもプロセス競合のほうがまだまし
しかも競合それ自体には行き詰まりの意味はない
あくまでも競合による行き詰まりがデッドロック
0870デフォルトの名無しさん (ワッチョイ c201-45kF)
垢版 |
2021/10/26(火) 11:09:30.80ID:UqMMY6BB0
座礁がdead rockからきた勘違い
deadlockは身動き取れなくなるという意味はない

語源はdead+lockだから「壊れた錠前」であってるけど
今はその意味で使われることはない
0874デフォルトの名無しさん (スププ Sda2-BqrI)
垢版 |
2021/10/26(火) 12:57:34.74ID:ht6Potv3d
>>865
壊れた錠前では無いよ。
行き詰まりそのもの。
リソースのlock自体、錠前のことではない。
名詞としてのlockは、カギで開け閉めするものに限られるので、リソースなどを指してない。輪留めとか、にっちもさっちもいかない状態とかそういうのを指す。

動詞としては、固定するだよ。
リソースを取得するのにカギが必要なら錠前だろうけど、カギは要らない。
0879ハノン ◆QZaw55cn4c (ワッチョイ 6247-SMpf)
垢版 |
2021/10/26(火) 20:18:17.44ID:YaaA9sXD0
>>878
低頓する、低頓させる、「交渉は賃金問題で行き詰まった」、旺文社シニア英和辞典
行き詰まる、行き詰まらせる、低頓する、低頓させる、研究社リーダーズ英和辞典
0880デフォルトの名無しさん (アウアウウー Sa45-iXiw)
垢版 |
2021/10/26(火) 20:48:48.62ID:eY0tVbdGa
さすがに「言葉の意味は文脈に依存する」ってことを知らない人がこれだけ多いと日本の将来心配になるねw

この業界でデッドロックと言えば普通は非同期処理の文脈におけるデッドロックのことを指す、
これは最初から言っているように間違いない。

ただ必ずそうとは限らないと言ってるだけ。
イキってる皆さんがどう思おうが自由だけど、メソッドが制御を返さない状態のことをその原因を問わずに
「デッドロック」と呼ぶ用法は普通に使われてる。
0881デフォルトの名無しさん (アウアウウー Sa45-iXiw)
垢版 |
2021/10/26(火) 20:52:50.16ID:eY0tVbdGa
そもそもデッドロックの意味とか、片方向と双方向の違いがどうのとか、そんなのどーでもいいわw
誰がそんな話してるんだよw

俺は時々ニュース系の板とかでネトウヨ馬鹿にして楽しませてもらってるけど、
この追いつめられると別の矮小な問題にすり替えて誤魔化して逃げるやり方って
連中そのものだねw
0882デフォルトの名無しさん (ワッチョイ 0d2f-/PVD)
垢版 |
2021/10/26(火) 21:39:59.59ID:5YjTtZfR0
>メソッドが制御を返さない状態のことをその原因を問わずに「デッドロック」と呼ぶ
まあ、たんなるロック待ちをデッドロックというやつはたまにはいるけどな
あきらかに間違ってるわけで、それが普通とかもう話にならん

>追いつめられると別の矮小な問題にすり替えて誤魔化して逃げる
まさに今のお前だな
0884デフォルトの名無しさん (ワッチョイ c201-45kF)
垢版 |
2021/10/26(火) 22:01:25.78ID:UqMMY6BB0
>>878
名詞が動詞化したものだから意味に違いはないよ
自動詞は「デッドロックになる」こと
他動詞は「デッドロックをもたらす」こと

デッドロックとは「相対する2つの勢力が拮抗して事態が進展しない状態」
DBMSのデッドロックも非同期処理のデッドロックも状況が特化してるだけで意味は同じ

座礁は船と岩礁の力が拮抗してるってことなら
その辺に転がってる石ころもdead rockだね
0885デフォルトの名無しさん (ワッチョイ d193-EFWq)
垢版 |
2021/10/26(火) 22:18:18.56ID:+xnJ+mOr0
>>884
deadlockの言う座礁する、座礁させるは日本語では比喩的な使われ方をする座礁だよ
交渉が座礁するとか交渉が暗礁に乗り上げるって意味での座礁
だから名詞じゃなく自(他)動詞
0887デフォルトの名無しさん (ワッチョイ c201-45kF)
垢版 |
2021/10/27(水) 00:14:30.81ID:un5zQ+BD0
>>885
「deadlockの言う座礁する、座礁させる」って何? どこから出てきたの?
deadlockの言う?

交渉が座礁するとは日本語では言わない
交渉が暗礁に乗り上げたとしてもそれがデッドロックとは限らない
単なる待ち状態をデットロックと言ってるのと同じレベル
0891デフォルトの名無しさん (ワッチョイ fd5f-iXiw)
垢版 |
2021/10/27(水) 10:24:03.90ID:t2iD5tO80
>そもそもデッドロックの意味とか、片方向と双方向の違いがどうのとか、そんなのどーでもいいわw
>誰がそんな話してるんだよw

>追いつめられると別の矮小な問題にすり替えて誤魔化して逃げるやり方って連中そのものだねw

まさにこれ
話を逸らすついでにスレ流して汚点を忘れさせようとしてるのが観える
0894デフォルトの名無しさん (ワッチョイ 8901-h3eI)
垢版 |
2021/11/02(火) 21:51:33.93ID:4DiwsCtO0
ニコニコ弾幕ツールを作りたくてプログラミングとC#を初めて触ったのですが
なにか参考になる動画や書籍資料等ないでしょうか?
簡単なメニュー程度なら作れるようになったんですがどうすれば弾幕打てるツールになるのか全く分かりません。
弾幕ツールソースとかでググってもそれっぽいのが全く出ず…
超初心者スレでも聞いたのですが回答もらえなかったのでこちらで…
0895デフォルトの名無しさん (ワッチョイ 136a-jRDL)
垢版 |
2021/11/02(火) 22:21:39.61ID:SO0TQkZV0
>>894
ぐぐるんなら、「ニコニコ動画 コメント api」とかじゃね?
ちょっと古いけど
ttps://qiita.com/tor4kichi/items/74939b49954d3e72d789
こんな感じで以前は出来ていたようです
が、今春にコメントサーバーがリニューアルされているようなので、おそらくは上記の記事そのままではなくなっていると思います
https://blog.nicovideo.jp/niconews/141893.html

ブラウザコントロール上でアレコレさせるのとどっちが楽かは知らん

いずれにしても、言語そのものの知識以外の、httpだとかニコニコの仕様そのものだとかの知識の方が必要かと思います
0896デフォルトの名無しさん (ワッチョイ 8bbb-fCIK)
垢版 |
2021/11/02(火) 22:37:12.36ID:crJtQlzP0
勉強のためにやりたいのなら別だけど・・・・
自分で使いたいとかそういう目的なら、ほとんど完成品みたいなものが既にある
https://www.nuget.org/packages/NicoNico.Net/
0897デフォルトの名無しさん (ワッチョイ 8901-h3eI)
垢版 |
2021/11/02(火) 23:03:38.72ID:4DiwsCtO0
>>895-896
回答ありがとうございます
C#の知識だけじゃ実現できないのですね(;´Д`)
C#の他にJavascriptとかCのAPIですか…3,4年はかかりそうですね…
やったことが無駄にならないことが分かったので頑張ります
0898デフォルトの名無しさん (ワッチョイ 1310-x9M2)
垢版 |
2021/11/03(水) 03:43:52.91ID:Di9oQY4e0
日にどれくらい時間かけるかにもよるけど早い人なら無学から始めても1ヶ月かからんやろ
すでにほとんど完成品といえるようなパッケージがあるならなれてる人なら1日かからず完成する

始めて開発というものをするにあたって半年以上かかりそうなもんはモチベーション続かんから普通はおすすめできない
もしこのコメントツールで年単位で掛かりそうだと感じたならもっと規模の小さい、長くても1ヶ月くらいで完成させられるかな?って想像できるようなものから始めたほうがいいと思うよ
0899デフォルトの名無しさん (テテンテンテン MMeb-nRM3)
垢版 |
2021/11/03(水) 08:25:21.70ID:MLVf2VPVM
>>894
10/20にニコニコ動画関連総合ツールスレで質問して回答もらえなかった人?
そこまでできるようにはなったんだ
ニコ動の弾幕なのか、ニコ生の弾幕なのかわからないけど
・ネットアクセスのやり方(httpclientかなんか)
・WebSocketの使い方(ニコ生のみ)
・jsonの知識
・非同期の使い方
はわかってないとできないと思う
以下を見て理解できるまでがんばって。以下のニコ生・ニコ動の説明は古くてそのまま使っても動きません。
ブラウザーのディペロッパーツールで解析してね。
ニコ生
https://qiita.com/tor4kichi/items/5c438aa11fea5422103b
https://qiita.com/tor4kichi/items/4df5b11ec564bb8f8d16
ニコ動
https://qiita.com/tor4kichi/items/91550a71119f3878bfba
0900デフォルトの名無しさん (ワッチョイ 9924-UgiY)
垢版 |
2021/11/03(水) 11:12:45.02ID:s4xVDTJC0
>>897
Web関連は基本人間が理解出来る文字列でやり取りするから比較的難易度低い方
C#で作るならCの知識が必要になる場面なんて全くないはず
Html、Css、JavaScriptの知識はどの言語で開発するにしても多少必要にはなってくるがそんな難しくはない
0901デフォルトの名無しさん (テテンテンテン MMeb-PiCk)
垢版 |
2021/11/03(水) 16:24:16.20ID:XrFTraKdM
>>897
あなたが作りたいツールを作るにも10年ぐらい前ならもっと簡単な知識でつくれたんだけど、Flashからhtml5になった頃から技術的なレベルが高くなったのも一因
ニコ動、ニコ生にしても以下のステップを1つづつ目標にして。

1.ニコ動かニコ生のURLを入力してそのページの内容を取得して表示なり取得確認する
2.そのページから必要な情報を選択して取得する
3.ニコ生の場合は、その情報からwebsocketに接続して各種情報を取得
4.ニコ動の場合は、その情報からコメント情報を取得する

たぶんこの辺までできれば次どうすればいいかはわかると思うよ
0902デフォルトの名無しさん (ワッチョイ fb10-9kQe)
垢版 |
2021/11/03(水) 20:51:20.05ID:b4M0oSaD0
今時はIEコンポーネントブラウザを使わないからだよ
ニコニコの場合は
(1)Javascriptでブラウザの拡張機能を書く
(2)Pythonでダウンローダーや巡回、予約
で大半だよね、C#の出番はあまりないん
0903デフォルトの名無しさん (ワッチョイ 515f-vonH)
垢版 |
2021/11/05(金) 19:37:49.44ID:1GMX4TDW0
API使わずにスクレイピングっていいのか?
0906デフォルトの名無しさん (ササクッテロ Sp79-y4Tz)
垢版 |
2021/11/08(月) 19:23:08.09ID:jl5nUU4op
SQLのパラメータって使いまわせなかったっけ?

例えば下みたいなSQLがあったとして
string sql = "UPDATE HOGE_TBL SET HOGE = :hoge WHERE HOGE = :hoge ";

パラメータが下1つだけだったら更新件数0件で上手く動かない…
cmd.Parameters.Add(new OracleParameter(":hoge", "huga"));

Javaだと上手く動くけどC#は明示的に分けないとダメな感じ?
0909デフォルトの名無しさん (ササクッテロ Sp79-y4Tz)
垢版 |
2021/11/09(火) 12:25:10.04ID:+zMu32a8p
>>908
dクス
0910デフォルトの名無しさん (ガックシ 0671-09aj)
垢版 |
2021/11/12(金) 14:47:41.59ID:LR2kPQ3V6
最近c言語習い始めた初心者なんですがwhile()のカッコ内の条件式に論理演算子を使うことはできますか
もしできるならif文の時のように入力すればいいのでしょうか
0912デフォルトの名無しさん (ワッチョイ 2524-Ny61)
垢版 |
2021/11/13(土) 11:48:36.10ID:WnzBfGlt0
C#10で文字列補間が大幅に最適化されたってことらしいけど、
stringオンリーの4個以内(Concatの最大引数以内)以外は$"{}"で繋げていった方がむしろパフォーマンス良くなるって認識でOK?
0914デフォルトの名無しさん (ワッチョイ 7501-D258)
垢版 |
2021/11/17(水) 00:43:34.98ID:qSiAIVdk0
わけあってVisual Studioをインストールできない環境があるのですが、
その環境で
Windows標準のC#コンパイラ(C:\Windows\WinSxS配下のcsc.exe)

Visual Studio Code
でC#コンパイル環境を作成したいのですができますか?

以上、よろしくお願いいたします
0916デフォルトの名無しさん (ワッチョイ 7501-D258)
垢版 |
2021/11/17(水) 18:51:18.08ID:qSiAIVdk0
>>915
積むかどうかは分からないですね
私は超能力者ではないので
0917デフォルトの名無しさん (ワッチョイ 7501-09aj)
垢版 |
2021/11/17(水) 20:50:08.18ID:iuNg9UQr0
ビスマルク「愚者は経験に学び、 賢者は歴史に学ぶ」
0920デフォルトの名無しさん (ワッチョイ 4de6-wt4Y)
垢版 |
2021/11/17(水) 22:48:30.86ID:OY6bKJls0
普通の会社で使えるのは2017までなんだよな
0922デフォルトの名無しさん (ワッチョイ 7501-09aj)
垢版 |
2021/11/17(水) 23:14:07.67ID:iuNg9UQr0
まだ2021年なのに?
0925デフォルトの名無しさん (ワッチョイ 8eda-xqyN)
垢版 |
2021/11/19(金) 01:11:50.72ID:4qGzfQ8F0
コマンドが格納されたListを順番にサーバへ送信し、
1が返ってきたら次のコマンド送信、1以外かTimeoutしたら即中断みたいな処理を
ractiveでサクッと書けますか?

var cmdList=new List<string>{ cmd1, cmd2, ... };

cmdList
 .ToObservable()
 .TimeOut( ・・・ )
 .SendCommand()
 .WaitResponse()
 .PostRecv(1だったら次のコマンド送信、1以外やタイムアウトなら処理中止);

みたいな感じで。。
0929925 (ワッチョイ 8eda-xqyN)
垢版 |
2021/11/21(日) 00:41:13.81ID:7ZBVrJXA0
ReactiveExtentions(System.Reactive名前空間 ver5.0)を使ってます。
自分なりに書いてみましたがこのライブラリの使い方がよくわかってない状態です。
(疑問点をコメントに書きました。分かる方教えてください)

IDisposable d = cmdList
 .ToObservable()
 .Timeout( TimeSpan.FromSeconds( 3000 ) )
 .Select( cmd =>
 {
  var res = this.SendCommand( cmd ) // 自作のコマンド送信関数;
  return res;
 } )
 .Where( res => res == 1 )
 .Subscribe(
  res => /* ここで次のコマンド送信を行う書き方が分からない*/ res.ToString(),
  ex => Debug.WriteLine( ex.Message /* Timeout発生時 */ ),
  ()=> Debug.WriteLine( "Complete" /* 全ての送信完了?それとも1つだけ送信完了? */ )
);

>>927
やはりToAsyncEnumerbleからアプローチするべきなんですかね。。
0931デフォルトの名無しさん (テテンテンテン MM8e-YpRD)
垢版 |
2021/11/21(日) 10:42:16.16ID:XHu2qeE/M
Rxは監視を行うもの
時系列に沿って要素が流れてくる時に使うもの
なのである要素が流れてきた時に次の要素なんてのはまだ無い
要素が最初から揃ってるListから始めるからわからなくなる
最初から揃ってるなら普通にLinqかforeachを使う
Listでなくストリームならこれでおk

var d = CommandStream
.Select(c => Send(c))
.Timeout(t)
.TakeWhile(r => r == 1)
.Subscribe();
0932デフォルトの名無しさん (ワッチョイ bf4b-1Ur4)
垢版 |
2021/12/10(金) 11:57:57.31ID:ceXBGTs50
次元の違う配列ではArray.Copy出来ないのでしょうか。

例)
var foo = new int[4];
var bar = new int[3, 4];
ArrayCopy(foo,0,bar,0,4); // 例外発生 "The specified arrays must have the same number of dimensions."

1個づつコピーするしかないのでしょうか?
0936デフォルトの名無しさん (ワッチョイ a724-C40i)
垢版 |
2021/12/10(金) 13:21:12.71ID:/7sxHGOs0
MemoryMarshal.CreateSpan(ref bar[i, 0], 5000)とかやっても確か例外でないから最新の注意を払う必要はある
まぁこうやってもソースの長さがデスト以内であれば問題は生じないけど
0937デフォルトの名無しさん (ワッチョイ c702-p36F)
垢版 |
2021/12/12(日) 04:59:13.07ID:/1pFbOYv0
入力を検知したときにメソッドを実行する処理において、
要素Aがnullでなく(エラー防止)、Aの子要素Boolがtrueの場合のみ処理をスキップしたい場合に いい書き方はありますか?
!A.Bool でメソッドを実行にしてしまうとAがnullだったときに実行されなくなってしまうので……
ひとまずgotoを使って以下のようにしているのですが、もっとスマートな書き方ありますでしょうか

if (Input)
{
if(A != null){
if(A.Bool){
goto INPUTSKIP;
}
}
Method();
}
INPUTSKIP:
0940デフォルトの名無しさん (ワッチョイ a701-p36F)
垢版 |
2021/12/12(日) 09:36:50.05ID:G8rzE1470
>>939
それを反転させて
if (Input)
{
if (A == null || !A.Bool)
{
Method();
}
}
0941デフォルトの名無しさん (ドコグロ MM9f-JVtf)
垢版 |
2021/12/12(日) 10:16:02.74ID:2rSkF5hnM
>>937
goto 使いたくないと言うなら A が null か、A.Bool が false の時に処理したいってことだから普通に

if(A == null || !A.Bool){ 処理 }

って書くか>>938が言うnull条件演算子とnull合体演算子を使って

if(!(A?.Bool ?? false)){ 処理 }

でいける
個人的にはこの場合だと上の方がわかりやすいと思う
0944デフォルトの名無しさん (ワッチョイ c702-p36F)
垢版 |
2021/12/12(日) 12:48:33.01ID:/1pFbOYv0
AがnullだったときにORで並べてA.Boolの条件式を使ってしまうとそんなもんないよってエラーを吐くのでは、
と思い込んでいたのですが大丈夫なんですね……!
!A.Boolだけで判定したときに怒られたので頭凝り固まってました!

ありがとうございました!
0946デフォルトの名無しさん (ワッチョイ c702-p36F)
垢版 |
2021/12/12(日) 13:17:35.22ID:/1pFbOYv0
>>945
ああーなるほど、ORの場合どれか1つでも満たされてれば実行されるから
左側が条件を満たしてたら右側はもうチェックされないのか!!
良いこと知れました! ありがとう!
0952デフォルトの名無しさん (ワッチョイ a701-4A0X)
垢版 |
2021/12/13(月) 09:12:51.67ID:7pnzZ4JB0
>>937
条件式をネストしたり&でつないだりと複雑にするのは難読性が高くなるから分けたほうがいいだろ
どういう条件ならMthod()を呼ぶのか明確に

if(Input){
//事前処理
judge=(A==null) ? true: //Aがnullのとき
A.Bool==false ? true: //Aの子要素がfalseのとき
false; //それ以外
if(judge) Method();
//共通処理
...
}
0954デフォルトの名無しさん (ワッチョイ df01-c3Ov)
垢版 |
2021/12/13(月) 11:44:51.75ID:zykNHKxZ0
skipするほうが例外的処理だろうからskip条件を明確にしてearly returnしたほうがいいと思う
論理式の細かい書き方よりも意図が伝わるかどうかのほうが大事

if (ShouldSkip(a)) {
return;
}
Method();

bool ShouldSkip(A a) {
return a?.Bool ?? false;
}
0955デフォルトの名無しさん (ワッチョイ bf62-Trcr)
垢版 |
2021/12/13(月) 14:01:49.98ID:z2L+bKXw0
メソッドにすんのはいいけど、>>937 が入力を検知したときメソッドを実行したいって言ってんだからその通りに書けばいい
設計書通りに条件分岐すりゃいいのに無駄に置き換えて実装する人多いけどなんなんだろうね

if(入力検知(input, A)){
Method();
}

bool 入力検知(bool input, A a){
return input && a != null && a.Bool;
}
0956デフォルトの名無しさん (アウアウウー Sa6b-p36F)
垢版 |
2021/12/13(月) 14:22:24.69ID:6wRfW5vFa
昼飯食いながら適当だから何か勘違いしてるかもしれないけど、>>937って要は
ある条件を満たした時だけMethodを実行したい、それだけでしょ?

だったら四の五の言わずに素直にそう書くのが一番じゃないの。
if( input && (!A?.Bool ?? false)) Method();
0957デフォルトの名無しさん (アウアウウー Sa6b-5lnE)
垢版 |
2021/12/13(月) 14:29:51.31ID:KmNdaGVTa
求めてるのは「もっとスマートな書き方」だからな
主観的な問題だから、俺らが言えるのは「こういう書き方もある」ってのだけ
正解(どれが一番か)を決めれるのは本人だけ
0958デフォルトの名無しさん (アウアウウー Sa6b-p36F)
垢版 |
2021/12/13(月) 14:47:42.73ID:6wRfW5vFa
コードでも文章でも読み手に「要するにそれってどういうこと?」って思わせないのが一番。
これもコードでも文章でもそうだけど、読みにくいものは書いた本人がそこをよく理解せずに書いている。
0961デフォルトの名無しさん (ワッチョイ df01-c3Ov)
垢版 |
2021/12/13(月) 16:35:33.81ID:zykNHKxZ0
>>955,956
>>937を読む限りでは入力を検知する処理と
検知した後に特定の処理をスキップするかどうかを判断する処理は別じゃないのかな?

「A.Boolがtrueなら入力を検知しない(or 入力を無視する)」ってことなら
入力よりも先にA.Boolを確認するよね
0994デフォルトの名無しさん (ワッチョイ ff6e-n/si)
垢版 |
2021/12/19(日) 09:44:58.73ID:QHfeHH9E0
WinFormsを独学でやっているのですが教えて下さい
そこそこの規模のソフトは作れるようになってますが
VSで開発していくうえで、フォルダ構成ってどう考えればいいですかね
いままではDB関連をDBフォルダ
フォームはFormにまとめてさらにその中に機能別にフォルダを
細かいクラスファイルはClassというフォルダに
DBとの受け渡し(sql書いてFormとの受け渡しModelみたいなもの?)は
Modelというフォルダにまとめています

プロの皆様はチームで作っていかれる際に
会社によりけりかもしれませんが一般的なフォルダ構成の考え方ってあるんでしょうか
0996デフォルトの名無しさん (アウアウウー Sa9f-f5lq)
垢版 |
2021/12/19(日) 10:00:48.95ID:n0pWJPWXa
なんのフォルダなのか理解できない
プロジェクト(visual studio上でのプロジェクト)内じゃフォルダ切ることはないな
プロジェクトがある程度大きくなったらクラスライブラリに分ける
0998デフォルトの名無しさん (ワッチョイ ff6e-n/si)
垢版 |
2021/12/19(日) 10:33:08.48ID:QHfeHH9E0
>>995
そうなんですね、気をつけます

>>996
たとえば画面数でも100超えて、機能部分のClassファイルも100越えてくると
いちいち該当ファイル探すのが面倒でフォルダに分けたって感じです
前はPHPのフレームワークとか触ったときは
たとえばcontroller model viewとフォルダも階層構造みたいになっていて
そういう感覚もあります
チームでやられていると、どこに何のファイルが散らばっているか
わからなくなったりしないのですか? きちんと仕様書があるから関係ないのですかね

やっぱりクラスライブラリ(DLL化?)もちゃんと理解しないと駄目ですよね
一人で作ってるので、DLL化するほうが手間な気がして避けてました
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 1004日 15時間 55分 34秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

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

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

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