ふらっと C#,C♯,C#(初心者用) Part147

■ このスレッドは過去ログ倉庫に格納されています
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
2020/04/25(土) 17:57:58.43ID:duoUHH2X0
>>468
紛らわしいだけなのでNG
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;
}
2020/04/25(土) 18:46:43.43ID:Shh4d2200
s2がめちゃくちゃでかくて ConcatPrint がすごく時間がかかる処理ならs2を使わなくなった段階で null を代入するのは意味があるんじゃないか
2020/04/25(土) 19:17:42.17ID:duoUHH2X0
コンパイラでどう最適化されるのか考えてみ
475デフォルトの名無しさん (アウアウウー Sab5-BpYI)
垢版 |
2020/04/25(土) 19:33:44.64ID:8r0Ych+Ea
重い非同期メソッドを呼び出す前に不要になる巨大な配列aがあるとすれば、
非同期メソッドを呼び出す前にa = nullにする意味はひょっとしたらあるのかもと思うけど、
>>474の言うとおりそういう猿仕事は本来コンパイラにやって欲しいよね

まあ、そろそろいいのではこの話題。
エクセルのオートメーションとかやる時に鬱陶しいReleaseComObjectがあるけど、
VB6ではああいう感覚でNothingを変数にいちいち入れてたんだよね。
2020/04/25(土) 20:35:52.62ID:I4zKFD3L0
メソッド中のローカルみたいな単純に追跡できる変数なら実際回収されるからね
逆に明示的に生存して欲しい場合のためにGC.KeepAliveなんてのもある
477デフォルトの名無しさん (ワッチョイ 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
2020/04/25(土) 20:48:23.53ID:qFkcGRPu0
>>473
>>434に貼った記事を読むといいよ
どの段階で回収可能になるか詳しく書いてる
479デフォルトの名無しさん (ワッチョイ 15cf-Ue8b)
垢版 |
2020/04/25(土) 20:51:29.48ID:pYNu3Cma0
>>478
日本語でおk
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
2020/04/25(土) 21:10:01.07ID:UeM9CFrC0
国会をクイズ会場にするな
初心者向けスレをクイズ会場にするな
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破棄 */ }
 // 長い処理
}
483デフォルトの名無しさん (アウアウウー Sab5-BpYI)
垢版 |
2020/04/25(土) 23:13:57.58ID:jtuoTa4Ea
>>482
ちょっと何言ってるのか
>/* hage初期化 */
で毎回Hogeのインスタンスを作ってるならインスタンスが変数hageから参照されなくなった時点で
GC対象でしょう
nullいれて何の意味があるの?
2020/04/25(土) 23:18:32.91ID:W2d10YjF0
>>483
初期化されるのはn=0の時だけ
見難いコードだ
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しか詰まってないと思って無視していいと思う
2020/04/25(土) 23:32:05.95ID:CeBC06vz0
>>485
リソースの破棄とメモリの解放をごっちゃにされても困るんだが
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初期化 */ }
488デフォルトの名無しさん (アウアウウー Sab5-BpYI)
垢版 |
2020/04/26(日) 00:47:35.12ID:v/oAUwR6a
>>484
あw

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

同じ処理を二度書くのは保守性の観点から一般的には悪手だけど、>>482よりマシでしょう。
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(・・・) {
  // その他配列をいじくりまわすために必要な処理各種
 }
}
2020/04/26(日) 04:32:34.57ID:Rz7+bFFLa
旧バージョンのC#をお守りする仕事から何とか逃れたい…
2020/04/26(日) 05:07:29.90ID:flVxc/260
C#フォームプログラムを0から覚えたくて猫でも分かるサイト見てたんですが
7、8章辺りから説明が雑になってきて分からなくなってしまいました。
もう少しわかりやすく順序立てて解説してるサイトはないでしょうか?
2020/04/26(日) 10:18:15.48ID:NUpBHqGl0
これを雑だと言うのなら他サイト見ても全部雑だと文句言いそう
2020/04/26(日) 10:29:18.48ID:BFeJAfYX0
>>491
具体的には何がわからないの?
494デフォルトの名無しさん (ワッチョイ 15cf-Ue8b)
垢版 |
2020/04/26(日) 10:54:27.48ID:LGlXzGY70
>>489
disposeはインスタンスを破棄するメソッドじゃない
2020/04/26(日) 11:33:08.73ID:veb1rsQN0
猫はなんか見づらい、というか目がちかちかする。
496デフォルトの名無しさん
垢版 |
2020/04/26(日) 11:46:54.16
あのサイト2000年頃からあったよな
作者は50代くらいか
2020/04/26(日) 13:34:47.59ID:1XpAbCKg0
>>482,487です
質問の仕方が悪かったみたいです

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

変な質問に付き合わせてすみませんでした
2020/04/26(日) 13:39:25.82ID:BFeJAfYX0
>>497
null代入なんて初心者は考えなくていいよ
2020/04/26(日) 13:55:39.53ID:bgNhzTiH0
>>497
試せばわかるよ
https://dotnetfiddle.net/1cjY1F
(※最適化が必要なのでReleaseモードで)
2020/04/26(日) 14:58:49.24ID:1XpAbCKg0
>>499
意図したとおりの動きが確認できました
別件で不安のあったところも、GCクラスで確認できそうです
ありがとうございました
501デフォルトの名無しさん (ワッチョイ ee90-HPZ2)
垢版 |
2020/04/26(日) 17:35:11.55ID:QqkrbzyN0
C#使ったデータ保存で手軽にできる方法ってどういった方法でしょうか?
外部ライブラリ使ってもDB使っても構いません
やっぱりEntity Frameworkでしょうか? それともxsd作ってxmlシリアライズの方が良い?
2020/04/26(日) 17:59:27.42ID:MQj0O2FGM
>>501
json
2020/04/26(日) 18:28:11.42ID:flVxc/260
>>493
Graphics g = e.Graphics;
graphicsプロパティで変数gを宣言してeのグラフィックプロパティを代入とか意味がわからないです
これをするとDrawなんちゃらって関数呼ぶときに文章が短くなるのは何となく分かるのですが
この著者のコンソール編でプロパティにプロパティを代入とか習わなかったから具体的にどういう状態になってんのか分かりません。
後は関数呼び出すときに仮引数に g.DrawLine(new Pen()とかやってますが仮引数でnew クラス型 とかやる手法はこの著者のページでは習ってないはずなのに
何の説明もなく使っていて理解できませんでした。
他にもたくさんありますが、ただただ真似して書けばいい感が強くて理屈で理解できませんでした
504デフォルトの名無しさん (アウアウウー Sab5-BpYI)
垢版 |
2020/04/26(日) 18:37:36.62ID:jo9Gp3qca
>>503
ここは質問スレだよw
愚痴は本人に直接伝えた方がいいと思うよ。ここで言ってもしょうがないでしょ。

一般論として、プログラミングの学習では分からないところでいちいち立ち止まってぐだぐだ考えるより
きっと後で何となくわかるようになるだろうと気軽に考えて先に進む方が効率がいいと思うよ。
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行で書いてるだけ。
2020/04/26(日) 18:55:17.00ID:bZwoQ/xt0
そのレベルで不親切だって言うならwebで満足できるものは少なくとも日本語では存在しないんじゃないかな?
書籍でも怪しいと思うけど
プログラムなんてとりあえず真似して書いてその後で色んなところいじってみて動作見て覚えていくもんだと個人的には思ってる
2020/04/26(日) 19:01:21.31ID:flVxc/260
>>505
なるほど。変数gの何のフィールドにプロパティを代入してるか分かりませんが
何となくわかった気がします。
仮引数でnew クラス型とするのは省略形として使えるのですね。
全然言及されてなかったので助かりました。ありがとうございます
508デフォルトの名無しさん (ワッチョイ ee90-HPZ2)
垢版 |
2020/04/26(日) 19:18:30.96ID:QqkrbzyN0
>>502
ありがとうございます
調べてみたいと思います
509デフォルトの名無しさん (ブーイモ MM5e-enkp)
垢版 |
2020/04/26(日) 19:18:56.74ID:VvmvgJTZM
>>502
それなに?13日の金曜日に出るやつ?
510デフォルトの名無しさん (アウアウウー Sab5-BpYI)
垢版 |
2020/04/26(日) 19:19:43.16ID:jo9Gp3qca
>>505の人は機能的に等価だと言ってるだけで省略形なんて言ってないし、そんな風に考えるのは間違ってるよw
2020/04/26(日) 20:19:36.23ID:Qe5iBT5s0
サンプルを一行一行丁寧に解説してほしいってか。。
贅沢やのお
2020/04/26(日) 20:34:57.68ID:PGzBFzsM0
まあでも気持ちはわかるわ。おれも初心者の頃はそんな所があった。後から理解は追いついてくるもんだけど、点と点が線になるには、点(小さな知識)を積み上げていくしかないからなあ
2020/04/26(日) 20:39:40.62ID:MuBSif2v0
paralell.forで並列処理しながら
同時にプログレスバーを更新したいんですが
どうやったらいいのか、というか可能なのでしょうか?
514デフォルトの名無しさん (ワッチョイ 382d-JoBq)
垢版 |
2020/04/26(日) 20:47:48.75ID:h+uhH0sS0
ついでに余計なことを教えて欲しいんだけどさ
こう言うローカル変数に代入しなおすのって、やると参照強度は変わるもんなのかな?
2020/04/26(日) 20:53:19.07ID:BFeJAfYX0
>>514
プロパティへのアクセスがコストかかる時はやることもあるけどね
2020/04/26(日) 22:27:07.16ID:N4kJSNdj0
>>513
どのタイミングで更新するのかわからんが
Progress<T>使えばいいんじゃないかな
517デフォルトの名無しさん (ワッチョイ e2ad-h7Ku)
垢版 |
2020/04/26(日) 23:00:31.67ID:VF6JOwzP0
>>513
Interlocked.Incrementで進捗進めて
BeginInvokeで表示更新でいけると思う
518デフォルトの名無しさん (ワッチョイ 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が出るのは何故?
519デフォルトの名無しさん (アウアウウー Sab5-BpYI)
垢版 |
2020/04/27(月) 00:42:29.38ID:ynzlI0MBa
>>518
GUI部品みたいにプロパティーやフィールドがいっぱいあるオブジェクトを想像してみ?
例えばLabel
何をもって等価だと判断するの?
Textが同じなら等価?
Textとサイズが同じなら等価?
TextとForeColorが同じなら等価?

そんなことシステムは忖度できないし、逆に勝手に忖度されても困る。
だからObject.Equalsは同一のインスタンスかどうかを検査するだけ。
xの値で等価かどうか判定したいならそのようにEqualsをoverrideしてください。
2020/04/27(月) 00:46:26.67ID:7GOhLkTu0
>>518
規定では同一のインスタンスかを調べるだけ
値を比較したいなら、Equals()をオーバーライドして比較する部分を自分で実装

https://www.atmarkit.co.jp/ait/articles/1802/28/news028.html
2020/04/27(月) 01:09:44.28ID:+pbqV8lG0
>>518
参照型と値型はそのへん違うから気をつけて
2020/04/27(月) 08:32:01.74ID:0MZh1QDY0
値型もEqualsをオーバーライドしなきゃダメだよ
2020/04/27(月) 08:40:50.79ID:+pbqV8lG0
>>522
別にだめなわけではない
2020/04/27(月) 09:01:14.66ID:5CwAYVjud
ドットネットではequalsが値比較で、==が参照比較…というのが基本ではあるんだけど、値型に関してはoperatorをoverrideしてあるからほぼ値比較してくれるんだ
2020/04/27(月) 14:19:07.06ID:O/Rc+c/Z0
でもさ、俺のおちんちんと君のおちんちんは同じじゃないよね?
ペロペロしてもらう時に俺のおちんちんじゃなくて君のおちんちんだったら無意味だよ
2020/04/27(月) 14:56:44.28ID:adSG+GOZM
>>513
その通りにコードを書けばいいと思うよ
2020/04/27(月) 18:30:42.73ID:pzY5bj450
>>524
>ドットネットではequalsが値比較で、==が参照比較…というのが基本
ソースは?
2020/04/27(月) 19:48:39.35ID:sEi51MkM0
>>516 >>517
Progress<T>だとどうも上手くいかなかったので
Interlocked.Incrementを試してみます
ありがとうござました
2020/04/27(月) 21:57:08.78ID:5CwAYVjud
>>527
ここらへんかな
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/statements-expressions-operators/how-to-define-value-equality-for-a-type
530デフォルトの名無しさん (ワッチョイ 968e-3zx1)
垢版 |
2020/04/27(月) 22:18:43.99ID:VtI6ihiD0
structの時もそうだったがここは答える方が馬鹿ばっかなんだな
2020/04/27(月) 22:19:58.04ID:azrm73Nod
>>529
それのどこに?
2020/04/27(月) 22:40:25.44ID:ZyoVYLj90
言語仕様策定側のガイドラインがあるなら聞きたい、って話なのに言語利用側のガイドライン見せられても、そりゃ?ってなるよね
2020/04/28(火) 06:23:15.85ID:sVyB4x530
どうせみんな死ぬんよ(´・ω・`)
2020/04/28(火) 08:52:13.97ID:zuokQMKDa
>>533
い粁
2020/04/28(火) 10:33:47.97ID:+VZERS3Cd
ZxingでPDFからバーコードを読み取りたいのだけど
PDFファイルをbinaryBitmapに変換できるフリーのライブラリってある?
536デフォルトの名無しさん (アウアウエー Sa6a-0GGu)
垢版 |
2020/04/28(火) 10:35:50.04ID:zAZN/f3sa
ある
2020/04/28(火) 10:40:48.89ID:xYOP5bIU0
Windows.Data.Pdfで出来るか?
2020/04/28(火) 18:35:42.95ID:JNpMj+Oe0
"Aが1,3,5,6のどれかならtrue"
みたいな判定をswitch、Contains()使わずに実現する方法
2020/04/28(火) 18:43:43.86ID:sVyB4x530
TrueForAll…
2020/04/28(火) 19:28:54.81ID:P/sctXtYa
取りうる値の範囲が整数で最大でも63なら
(((0b_110101_0 >> A) & 1) == 1) とか
2020/04/28(火) 19:31:51.95ID:tz02eWdG0
素直にContains使った方が良いんじゃね
Contains使えない理由でもあるの?
2020/04/28(火) 20:23:59.00ID:fttQZMFx0
学校の課題なんじゃね?
2020/04/28(火) 20:45:53.08ID:CB5xdhwI0
ifとorでやれよ
2020/04/28(火) 21:00:55.21ID:nnss28av0
array.Any(x => x.Equals(A))
Array.Exists()とか単純なfor loopとかいろいろやり方はあるよね
2020/04/28(火) 21:20:15.28ID:LE+4zw960
var result = value switch ❴
1 or 3 or 5 or 6 => true,
_ => false,
❵;
C#9だけど
あ、switch式も駄目ですか
546デフォルトの名無しさん (アウアウウー 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
2020/04/28(火) 21:46:29.35ID:9hpTUu+W0
頭いいな
switchを使わないってとこから単純なif判定も使えない
Containsを使わないってことから{1,3,5,6}みたいなコレクション自体使えない
って意図で考えてたけどその解法は気づかなかった
2020/04/28(火) 21:55:35.85ID:LE+4zw960
表引きは昔から高速化目的でよく使われる
sin/cosなんかを演算で求めるんじゃなくて0〜90度まで全部コンパイル前に計算しておいてコードに埋め込んでおくとか
メモリ食うことになるしsin/cosみたいな例だと0.5度無理みたいなデメリットはあるけど状況によってはそういうのが有効だったりする
2020/04/28(火) 23:34:39.75ID:C/CcLAW60
個人的には >>544 の方法が手っ取り早く感じる。

public static bool Hoge(int A, int[] source)
{
return source.Any(s => s == A);
}
2020/04/29(水) 00:46:32.86ID:0T/hrPb30
普段ならそれだよ
でも人様に10年はええなんて言える人が出すお題に普通に答えても…ってことで少しひねった回答しただけ
2020/04/29(水) 01:40:12.03ID:7lEbqk+c0
.Net Core でCe
2020/04/29(水) 01:47:19.07ID:7lEbqk+c0
.Net Core で CefSharp 使いたいのですが、nuget で参照追加しても、コンパイル時にエラーが発生します。
https://i.imgur.com/kGS4YK6.jpg

どうすれば動くのでしょうか?
2020/04/29(水) 08:02:27.75ID:kQQTqavqa
cef sharpとか初耳だわ
プレリリース版VSじゃないと対応してないとか?
554デフォルトの名無しさん (ワッチョイ 877c-h6Le)
垢版 |
2020/04/29(水) 16:05:40.25ID:DmNhs8y10
>>535-537
GhostscriptSharp で出来た
https://github.com/mephraim/ghostscriptsharp/blob/master/Tests/GhostscriptSharpTests/GhostscriptSharpTests.cs
2020/04/29(水) 20:05:47.63ID:u+omc4b+0
今後業務用のWEBアプリを作るときはMVCとRazorPagesとBlazorだと皆さんはどれを選択しますか?
クラサバシステムのWEB化の話があるので今後どういう勉強をしておくか迷っています
(MVCやJSの開発経験はあり)
2020/04/29(水) 20:10:06.56ID:3WB/6cAD0
OWIN?
2020/04/29(水) 20:34:00.93ID:u+omc4b+0
>>556
恥ずかしながらOWINについて知らなかったので調べましたが
アプリが動く環境についてのことであれば
必要であればこちらで整えることができる状況です
2020/04/29(水) 23:33:34.22ID:ZtFhb2uq0
ファイル圧縮解凍ライブラリについてなのですが、C#の場合はSharpCompressがベストなのでしょうか?
SevenZipSharpという7zipのラッパーもありこちらの方が良さそうかと思いきや、一見すると未完成なようにも見えますが
2020/04/30(木) 00:13:20.54ID:+bpYEB3E0
君の言うベストの要件は何?
System.IO.Compression.ZipFileで駄目なところは何?
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も確か最初試したけど、普通に使えた気がする
2020/04/30(木) 01:36:48.27ID:cGNlLD3W0
https://github.com/cefsharp/CefSharp/issues/2796
の、kpreisser という人のやり方で出来ました。
2020/04/30(木) 06:38:09.52ID:y9JRI7g10
>>558
多分SharpCompressの方が機能は充実してる
SevenZipSharpはインメモリ内のマルチボリュームを解凍する術がないっぽかったから捨てた
まぁ一般的な使い方をする分には差はないんじゃないかな
大本の7z.dllは優秀だからパフォーマンスは後者の方が高いのかもしれないが
2020/05/01(金) 10:47:14.24
SQL Serverとの連繋アプリを作るための参考書探してるんだが
VBのしか見つからないな これ買うしか無いか

WEB情報もVBのしか無いことあるが普通にC#でも使えるTIPS多いし
2020/05/01(金) 10:49:28.34ID:KEKGQA87r
むしろVBのがまだあるのか
2020/05/01(金) 11:09:25.56ID:IDkheS130
>>563
ググれば一発だし、ほぼリファレンスはC#やろ
566デフォルトの名無しさん (アウアウエー Sa9f-ur4w)
垢版 |
2020/05/01(金) 11:26:57.11ID:k2YlXFh6a
ggrks
2020/05/02(土) 12:22:51.84ID:QOp3K9V60
100%このマシンでしか使わないという自作アプリが何個もあり、そのうちの大半が利用しているJson.NetやLog4NetなどのライブラリをLocal Copy = falseにして一か所のdllを使いまわしたいのですが
GACにインストールする以外の方法はないのでしょうか?
LoadLibrary+GetProcAddressを利用すれば可能なんだと思いますがその場合はVSのサポートを得られないですよね
2020/05/02(土) 12:35:32.32ID:7zUXw5kNd
>>567
なんで地獄と呼ばれた状況に戻ろうとするの?
無駄っぽいとかそういう理由?
2020/05/02(土) 13:09:17.01ID:TijFnmRAa
>>567
今はコンテナでアプリにOSを丸ごとバンドルする時代ですよ
2020/05/02(土) 13:10:08.32ID:8Sc54whm0
チンポリックインコを使えばいいね
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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