15/10/02 20:50:08.06 IGV3Viy6.net
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part116 [転載禁止](c)2ch.net
スレリンク(tech板)
■関連スレ
C#, C♯, C#相談室 Part89 [転載禁止](c)2ch.net
スレリンク(tech板)
■コードを貼る場合は↓を使いましょう。
URLリンク(ideone.com)
2:デフォルトの名無しさん
15/10/02 21:08:10.59 FjrmJ/eh.net
c++DLLの64bitOSと32bitOSの使い分け
[DllImport("hoge.dll", EntryPoint="hoge")]
extern static int hoge_x86( int i);
[DllImport("hoge_x64.dll", EntryPoint="hoge")]
extern static int hoge_x64( int i);
public static int hoge( int i)
{
if( System.IntPtr.Size == 4 )
{
return hoge_x86( i );
}
else
{
return hoge_x64( i );
}
}
ではなく、
3:デフォルトの名無しさん
15/10/02 21:11:20.55 FjrmJ/eh.net
static string dll;
static{
if( System.IntPtr.Size == 4 )
{
dll="hoge.dll";
}
else
{
dll="hoge_x64.dll";
}
}
[DllImport(dll)]
extern static int hoge( int i);
public static int hoge( int i)
{
return hoge( i );
}
じゃ駄目なんでしょうか?
4:デフォルトの名無しさん
15/10/02 21:45:20.31 7HANc3XL.net
やってみたらええやん
やってみて駄目なら駄目なんだろうよ
5:デフォルトの名無しさん
15/10/02 21:53:18.86 N6iuQlgL.net
VisualStudio2013で勉強し始めてまだ駆け出しの者です
Listboxについて質問させて下さい
For i = 1 To n
List.Items.Add(i)
Next
これだと縦に1,2…nとリストされてしまい困っています
最終的に1(改行)1,2(改行)1,2,3(改行)1,2…nというリストを作るプログラムが作成したいのですが…
6:デフォルトの名無しさん
15/10/02 22:12:17.02 FjrmJ/eh.net
>>4
出来たのは出来たんですけど、このように書いているサイトがなかったので、何故かと思って…
7:デフォルトの名無しさん
15/10/02 23:19:40.26 qOcFsPem.net
class bass
class extend :base
というクラスがあり
baseに
static base Create(){return new base()}
があります。
しかし、これだとextend.Create()としてもbaseが返ります。
base.Create〈extend〉()としてもいいのですが、やはりextend.Create()としたいところです。
継承クラスで同じ名前のstaticメソッドを上書きできますが、基底のみで対応することは可能でしょうか?
8:デフォルトの名無しさん
15/10/03 00:42:19.31 ysYK4f75.net
>>5
VB.NETか
ここはC#スレ
まぁそれはいいとして
間にカンマいるのかしらんけど、こういうことか?
Dim sb As New System.Text.StringBuilder()
For i As Integer = 1 To n
sb.Append(i)
List.Items.Add(sb.ToString())
Next
9:デフォルトの名無しさん
15/10/03 05:59:57.10 XVf29bWA.net
>>6
できないでしょ
10:デフォルトの名無しさん
15/10/03 08:34:44.85 GmUX5JOa.net
>>9
あ、書いた時点ではエラーでなかったですけどコンパイルしたらおかしくなりました
11:デフォルトの名無しさん
15/10/03 10:12:23.64 pt22Iv4Q.net
>>7
pythonのclassmethodやね
たぶん、↓くらいしかできない
URLリンク(stackoverflow.com)
12:デフォルトの名無しさん
15/10/03 16:20:15.81 hORN2AoM.net
データベースはじめて5日目だけど
全スレ後半のデータベースの話は非常に参考になった
>localDB
この存在すら知らなかった
検索してもSqlCEやSQLiteばかりだし
利用する方法もEntityFrameworkばかりで苦労してやっとできたけど
localDB使う方法だと面倒な導入手続き無しにすぐ始められた!
>dapper
この存在も知らなかった
速さに関しては今のところEntityFrameworkでも特に問題ないけど
速くてかゆい所に手が届き、面倒なマップが手軽になっているので
これは使ってみたいと思った
EntityFrameworkだと大量に
13:dllファイルができるし、自動化によって裏で何をしているいのか よくわからないので不安感が付きまとう SQLite+dapperでやってみようかな
14:デフォルトの名無しさん
15/10/03 19:47:53.51 g7xKsIu0.net
>>12
奇遇だな。俺もDB五日目くらいだよ。
>localDB使う方法だと面倒な導入手続き無しにすぐ始められた!
と言いながら、
>SQLite+dapperでやってみようかな
というのは何故?
LocalDBよりもSQLite+dapperのほうがいいの?
15:デフォルトの名無しさん
15/10/03 19:57:11.23 VaoKZsdf.net
五日目コント
16:デフォルトの名無しさん
15/10/04 00:15:20.07 iyBr7bUF.net
>>13
localDBはC#でしか使われないのと
SQL Serverは導入は簡単だったけど
実際使い出すと奥が深くてとんでもなく難しそう
ノンプロなんで業務アプリを作ることもない
SQLiteは他言語や携帯端末にも使われていて
汎用的で情報も多いし簡単で配布にも便利
使い回しの効く技術学んだほうがいいかなーって思って
17:デフォルトの名無しさん
15/10/04 10:13:04.57 TDTWj9Zs.net
>>15
youは色々と勘違いしているよ
LocalDBは利用側の言語は問わないよ、VBAからだって使える
奥が深いのは当然、現在のLocalDBはT-SQL完全互換なのよ
SQLiteも良いね、でも汎用的かと言えば少し違うかもね
用途によってはSQLiteの方が良いというだけよ
だから使い回しの効く技術という点ならSQL Serverに軍配が上がるね
18:デフォルトの名無しさん
15/10/04 10:53:53.27 FsLwYc7A.net
DB初めて六日目なんですが、
> SQLite+dapper
勉強する価値はありますか?
19:デフォルトの名無しさん
15/10/04 15:49:22.81 FUfjHrs1.net
DBはじめて6日目ですけど
SQLite+EF6はだめだった
既存のDBにレコードを追加参照するだけなら簡単だったけど
動的にDBやテーブル作ろうとすると無理だった
LocalDB+EF6はモデルからデータベース作ろうとしたら
SQL Serverのダイアログが出てサーバー名とか出てきてなんだこれってなって
何を入力してもデータベースがどうたらとエラーが出る
それにランタイムみたいなので動いているようでめんどくさいと思った
調べるとLocalDBはあくまでテスト運用のためのもので
やっぱり業務アプリの開発者向けだったようだ
結局自分にはEF6は必要なかったという結論
それなら別にM$製のデータベースに拘る必要はないということで
SQLiteとそれを手軽に扱うMicro-ORMであるdapperという選択になった
SQLite+dapperを実際使ってみてSQL文を書かなきゃいけないのが面倒くさいが
SQLiteならチュートリアルサイトが山程ある
動的DB作成、動的テーブル作成もできた
導入もすんなり、全くエラー無し!
容量も14TBなので画像を保存しても気にしなくていい
EF前提でやってきた者からすれば
EFを使わなければこんなに簡単なんだって感動した
この選択肢で不満が出ることはないと思う
EFには二度と触らないと誓う
20:デフォルトの名無しさん
15/10/04 16:17:06.05 Vt6Jil15.net
abstractクラスでインターフェイスを継承したら、実装していませんエラーが出ます。何故でしょうか?
サブクラスで実装したいのですが…
javaだとabstractクラスにすれば実装しなくてもよかったんですが
21:デフォルトの名無しさん
15/10/04 16:52:15.00 WWC1qREk.net
JAVAじゃないから
22:デフォルトの名無しさん
15/10/04 16:52:36.36 Vt6Jil15.net
>>20
どうすればいいですか?
23:デフォルトの名無しさん
15/10/04 16:52:51.10 /6VAn0Rf.net
>>18
SQLite.netとかじゃダメなん?
24:デフォルトの名無しさん
15/10/04 18:00:36.61 0WB+oea1.net
>>21
インターフェイスのメンバーにabstractつけりゃいいだろ
25:デフォルトの名無しさん
15/10/04 18:00:40.94 K/b1ABC4
26:.net
27:デフォルトの名無しさん
15/10/04 18:03:28.27 K/b1ABC4.net
>>23だった
>>24は忘れてくれ
28:デフォルトの名無しさん
15/10/04 18:35:52.48 Vt6Jil15.net
継承するたびにabstractつけないといけないのか。。
29:デフォルトの名無しさん
15/10/04 20:14:08.67 FsLwYc7A.net
c#やる人はDBプログラミングも完璧に出来るの?
おいらには難しい。何から始めたらいいのか。
30:デフォルトの名無しさん
15/10/04 20:25:58.00 4ZFUkYGv.net
SQL
31:デフォルトの名無しさん
15/10/04 20:42:43.95 FsLwYc7A.net
sqlはある程度は出来るよ
32:デフォルトの名無しさん
15/10/04 20:47:58.51 4ZFUkYGv.net
じゃあ次に進もう
33:デフォルトの名無しさん
15/10/04 20:53:49.03 FsLwYc7A.net
次は何がいいのかしら?
34:デフォルトの名無しさん
15/10/04 21:16:12.67 4ZFUkYGv.net
ネットワークか3Dかな
35:デフォルトの名無しさん
15/10/04 21:22:40.77 FsLwYc7A.net
>>32
両方出来るわよ。openglはよく使ったわ。
36:デフォルトの名無しさん
15/10/04 21:26:32.67 Vt6Jil15.net
C:\Hoge\args\
と言う文字列から
args
を取り出すにはどうすればいいでしょうか?
GetDirectoryNameだとC:\Hogeになります
37:デフォルトの名無しさん
15/10/04 21:28:25.31 4ZFUkYGv.net
>>33
なんだよ。初心者じゃないじゃん。神レベルじゃん。
38:デフォルトの名無しさん
15/10/04 21:33:14.06 0WB+oea1.net
>>34
var path = @"C:\Hoge\args\";
var fileName = System.IO.Path.GetFileName( path.TrimEnd( '\\' ) )
39:デフォルトの名無しさん
15/10/04 21:36:42.41 Vt6Jil15.net
>>36
ファイル名じゃなくてフォルダ名を取得したいです
40:デフォルトの名無しさん
15/10/04 21:40:47.99 GuH6DZcU.net
>>34
マイナーなAPIだけど
new DirectoryInfo(path).Name
41:デフォルトの名無しさん
15/10/04 21:43:53.33 4ZFUkYGv.net
>>37
再起
42:デフォルトの名無しさん
15/10/04 21:48:10.61 zHOzyLwf.net
>>34
レスに文句ばっか言ってんじゃねーよ乞食
43:デフォルトの名無しさん
15/10/04 22:14:59.10 Vt6Jil15.net
ありがとうございます。出来ました
>>40
すみません
44:デフォルトの名無しさん
15/10/05 04:15:46.37 eQ2/zVIr.net
>>19
URLリンク(ideone.com)
普通にできるじゃん
明示的実装してんの?
URLリンク(msdn.microsoft.com)
45:デフォルトの名無しさん
15/10/05 09:14:38.11 NpHnTe7L.net
>>42
彼はURLリンク(ideone.com)を狙っているんでは?
出来なくても全く問題ないと思えるが、C#を欠陥言語だと揶揄したいのかな
46:デフォルトの名無しさん
15/10/05 10:35:28.87 LmMVGWnX.net
このへそ曲がりな解釈をしたがる根性はなんとかならないのだろうか?
強烈なコンプレックスを持ってるんだろうなあ…
47:デフォルトの名無しさん
15/10/05 15:46:26.20 eQ2/zVIr.net
>>43
うーん、池沼としか言いようがないな
48:デフォルトの名無しさん
15/10/05 18:17:41.66 PVqgELRl.net
ListBoxのDrawItemイベントとかで
DrawItemEventArgs.Indexに-1が渡されてくることがありますが
これってなぜ?
意味ないと思うんだけど。
だって描画しろというイベントでしょ?
いつも-1を除外するコードを書く度に思うんだけど!
と、ここまで書いて
背景を描けということなのかなと思い当たったけど合ってる?
49:デフォルトの名無しさん
15/10/05 19:45:13.85 W0LY67FT.net
wpfを最近始めたけど、難しいね。
バインディングも融通が効くというか、わけわかんないというか、わけわかんないほう。
みんながerectronに飛びつくのもわかる気がするよ。
50:デフォルトの名無しさん
15/10/05 20:49:50.82 EY/b50y6.net
今時HTMLは最低でも使えないと開発者として話にならないからね
どのみちHTMLは覚えなきゃならないし、HTMLで同じことは実現できるんだからわざわざWPFを使う理由がない
51:デフォルトの名無しさん
15/10/05 21:05:08.85 G+Q38Itw.net
井の中の蛙っすなあ
52:デフォルトの名無しさん
15/10/05 21:14:49.94 PVqgELRl.net
javascript地獄に落ちるよ
53:デフォルトの名無しさん
15/10/06 16:36:11.30 H4LWLTNp.net
SVNでコミットしようと思ったら間違ってアップデート押してしまった…
確認画面も出ないのかよ
54:デフォルトの名無しさん
15/10/06 16:53:27.84 y3L8AxGi.net
そりゃ簡単に戻せるからな
55:デフォルトの名無しさん
15/10/06 17:01:54.18 H4LWLTNp.net
どうやって戻したらいいんだ?
56:デフォルトの名無しさん
15/10/06 17:11:09.43 rJsBL5Cg.net
TortoiseSVN使ってるなら
Update to revisionするとか
Show logからUpdate item to revisionするとか
57:デフォルトの名無しさん
15/10/06 17:25:06.67 UaXFQD8w.net
何の話?
な ん の は な し ?
58:デフォルトの名無しさん
15/10/06 18:51:35.50 b7EIiqyO.net
>>51
どっちにしろアップデート要るからな
59:デフォルトの名無しさん
15/10/06 19:33:53.24 fQuxJtVK.net
>>51
ほ、ほら、SVNが適切にマージしてくれてるでしょ(震え声
60:デフォルトの名無しさん
15/10/06 21:04:13.40 eiV44Wn/.net
SVNはアプデ時に競合が合ったときの挙動がクソ過ぎる
61:デフォルトの名無しさん
15/10/06 23:55:21.99 EryYYvev.net
クラスA内のメソッド内でクラスBのメソッド使用
クラスBのメソッド内でクラスAのメソッド使用
のような関係があるとき
依存性を減らすためにコンストラクタで相手のオブジェクトを受け取り、フィールドにセット
するような作りにしたいんですが、お互いにインスタンス作るには、もう片方が必要なため、作れません
こういうときはどういう作りにすべきですか?
テストコードを書くため、メソッド内で相手クラスをnewするのは無しでお願いします
62:デフォルトの名無しさん
15/10/06 23:59:03.30 8uRulS56.net
相互参照しない作りにすべき
63:デフォルトの名無しさん
15/10/07 00:11:55.48 T1RoiOzF.net
Abstract Factoryを使えばいい
interface IHage { void DoHage(); }
interface IHoge { void DoHoge(); }
class Hage: IHage {
private IHoge hoge;
public Hage(Func<IHage, IHoge> hogeFactory) { this.hoge = hogeFactory(this); } }
class Hoge: IHoge { private IHage hage; public Hoge(IHage hage) { this.hage = hage; } }
これで new Hage(hoge => new Hage(hoge)) としてインスタンス作ればいい
factoryを変えればテスト時にHageにダミーのIHoge実装を食わせることもできる
64:デフォルトの名無しさん
15/10/07 00:20:04.54 3pa+NQnn.net
なるほど、デザパタ使っていけるんですね
ありがとうござました
65:デフォルトの名無しさん
15/10/07 00:24:26.54 T1RoiOzF.net
>>61訂正
new Hage(hage => new Hoge(hage))
66:デフォルトの名無しさん
15/10/07 12:27:46.25 dQPZGG2o.net
循環参照とか絵に描いたようなダメ設計だな
67:デフォルトの名無しさん
15/10/07 12:34:11.37 40NgKpJy.net
ボタンにイベントハンドラ登録したたけで循環参照になるのに何を言ってるんだ
ダメなのは循環参照ではなく2つのクラスが相互に密結合する設計
68:デフォルトの名無しさん
15/10/07 12:51:31.86 dQPZGG2o.net
>>65
VBスレでもそんなヨタを飛ばしてるバカがいたけど、.NETのイベントも
オブザーバパターンも実行時に参照を握るだけであってコード自体が循環参照してるわけじゃない
69:デフォルトの名無しさん
15/10/07 12:51:40.38 wgVSxFSa.net
クラスA内のイベントでクラスBのメソッドMethodBを呼び出す。
MethodB内では、クラスAのセッターを呼ぶ
みたいな処理は、どういう設計がいいんだろ?
>>61みたいにするのはよくない?
70:デフォルトの名無しさん
15/10/07 12:57:52.42 dQPZGG2o.net
>>67
そんなことをしたくなる(しなきゃならない)時点でもう詰んでる。
クラスの切り分け方が根本的に不適切だからそうなる。
71:デフォルトの名無しさん
15/10/07 13:13:24.70 UidqiOp4.net
だよな。どうしたらそんな糞設計ができるのか。
72:65
15/10/07 16:22:14.39 lr4jJmHi.net
>>66
そういうことを言ってるんだが
>>61は疎結合になってるからOK
73:デフォルトの名無しさん
15/10/07 16:36:06.20 dQPZGG2o.net
>>70
AがBに依存していないと偽装するという目的のためだけにインターフェイスIBを作ってBにかぶせても
AがBに依存している実態は何も変わらない。
そんなのただの欺瞞だ。
自分の欺瞞に自分で気づいてないなら自己欺瞞だな。
74:デフォルトの名無しさん
15/10/07 16:49:51.50 9sdQQKJG.net
はいはい
働けクソニート
75:デフォルトの名無しさん
15/10/07 18:25:15.82 wgVSxFSa.net
二つのクラスで相互参照があったら
間でやり取りするようなクラス追加したほうがいいってこと?
76:デフォルトの名無しさん
15/10/07 19:23:58.21 F4sBdgXs.net
そんな時、wpfの基本技術であるINotifyPropertyChangedを、普通のクラスから利用したりすると便利
上位のクラスはProperyChangedイベントを監視するだけでいいし、下のクラスはPrism使うだけ
77:デフォルトの名無しさん
15/10/07 19:55:05.52 HxdUxcN3.net
>>71
テスト時にダミーに差し替えるためだけの形式的なインターフェイスは普通に使われてるパターンだよ
嘘だと思うならVSのコードを逆コンパイルしてみたらいい
78:デフォルトの名無しさん
15/10/07 21:41:26.09 sdI3RqNo.net
下のようなデータがあり、BIDをgroupByして
2015年1月のnumの合計を出したいのですが、
どのように書けば可能でしょうか?
public class TDATA
{
public string BID { get; set; }
public DateTime day { get; set; }
public int num { get; set; }
}
static void Main(string[] args)
{
var hoge = new List<TDATA>();
hoge.Add(new TDATA() { BID = "A001", day = Convert.ToDateTime("2015/1/1"), num = 1 });
hoge.Add(new TDATA() { BID = "A002", day = Convert.ToDateTime("2015/1/20"), num = 2 });
hoge.Add(new TDATA() { BID = "A001", day = Convert.ToDateTime("2015/2/11"), num = 1 });
}
LINQを調べてみたのですが、条件が複数あると、
なかなか理解できず、よろしくお願いします。
79:デフォルトの名無しさん
15/10/07 21:58:51.87 T1RoiOzF.net
var groups = from x in hoge
where x.day.Year == 2015 && x.Month == 1
group x by x.BID into g;
foreach (var g in groups) {
Console.WriteLine(“BID={0}, Sum={1}”, g.Key, g.Sum(x => x.num));
}
80:デフォルトの名無しさん
15/10/07 21:59:22.05 T1RoiOzF.net
>>77
訂正
into g は不要
81:デフォルトの名無しさん
15/10/07 21:59:54.31 7k7eABWe.net
var sum = hoge.Where( tdata => tdata.Year == 2015 && tdata.Month == 1 ).Sum( tdata => tdata.num );
82:デフォルトの名無しさん
15/10/07 22:01:55.66 7k7eABWe.net
修正
var sum = hoge.Where( tdata => tdata.day.Year == 2015 && tdata.day.Month == 1 ).Sum( tdata => tdata.num );
83:デフォルトの名無しさん
15/10/07 22:06:02.97 T1RoiOzF.net
>>79-80
それだとBIDでグループ化されてないよ
メソッド形式でSumまで一行で書くならこう
var sums = hoge.Where(tdata => 略)
.GroupBy(tdata => tdata.BID)
.Select(g => new { BID = g.Key, Sum = g.Sum(tdata => tdata.num) });
84:デフォルトの名無しさん
15/10/07 22:45:02.75 NHKi3h4o.net
すいませんC#というか設計についてなのですが
モデルというのはどのように考えればよろしいでしょうか
クローラーを作ろうとしていて、新着一覧のページを定期的にチェックしていて
新着一覧のページには投稿者のIDの一覧があります。
投稿者のIDから投稿者の詳細は別のページで参照する必要があるので、投稿者のIDをキーにしてローカルに保存しようと思うのですが
この時投稿者のモデルはIDだけで作るべきなのでしょうか、それともIDとその他名前等の情報を混ぜて作るべきでしょうか。
IDだけで作ると、投稿者という同じデータなのにIDだけのモデルと、名前等全ての情報があるフルデータのモデルの二種類が出来てしまいます。
名前等全ての情報でモデルを作ると、IDしか分からない段階では名前等のプロパティが空 (null?)になってしまいます。
後者の方が個人的にはいいかなと思うのですが、モデルという物に対して、このモデルはIDしか入っていない あっちのモデルは名前とか全部入っている。だから処理を分ける必要が・・・
というのは許されるのでしょうか
85:76
15/10/07 22:53:54.57 sdI3RqNo.net
色々とお答え頂きありがとうございます。
やはり、LINQを使えば短いコードで
実現出来るのですね。
LINQの理解が低いので、
参考にさせて頂きます。
86:デフォルトの名無しさん
15/10/07 23:09:28.07 1Tzy0x1l.net
>>82
わざわざ分ける必要は無いと思う。
とりあえず、IDから名前等々、全部定義したクラスを定義しておけばいい。
データ(オブジェクト)の状態をチェックするプロパティを持たせておいて、取得済みかどうか判定できるようにしておけばいいし、
取得できてない名前とかは、適当に空文字なり返すようにしておけばいい。
87:デフォルトの名無しさん
15/10/07 23:09:28.12 K9vCPUNu.net
linqを使うと思考が衰えるから自力で組んだ方がいいぞ。
linq使いはツール使うことばっか覚えて地頭がクソなやつばっかだからな。
88:デフォルトの名無しさん
15/10/07 23:19:26.43 zlFawCtp.net
などと中卒が申してます
89:デフォルトの名無しさん
15/10/07 23:41:59.93 T1RoiOzF.net
>>82
そもそも、IDしかわからない中途半端な投稿者オブジェクトを
新着一覧クラスの外に晒す必要があるのかよく考えたほうがいいよ。
新着一覧クラスが投稿者ID文字列のコレクションを公開するのが嫌なら
新着一覧クラス自身に投稿者詳細をダウンロードしてくるメソッドを持たせたっていい。
もちろん賛否両論あるだろうけど、オブジェクト指向に拘るのであれば
オブジェクトから情報を取り出すのはなるべく避けて、オブジェクトに命令していくようにするのが基本。
90:デフォルトの名無しさん
15/10/07 23:54:33.19 ac/t6J3k.net
>>82
許されるというか基本中の基本
すべてを1つのモデルに詰め込もうとするともれなく巨大な神クラスが出来上がるぞ
文脈に合った適度な粒度のモデルを必要な数だけ作るんだよ
まずはとりあえず取得と更新を分離しろ
91:デフォルトの名無しさん
15/10/08 00:27:57.95 edkXggJo.net
>>82
var page=await NicoUtil.DownloadPageAsync(url);
page.UserIds.Add(userId);
var user=GetProfile(page.UserIds[0]);
user.Id=3945887;
user.IsNicoNamaNushi=false;
user.Description="";
UserDB.Add(user);
92:デフォルトの名無しさん
15/10/08 00:51:12.57 7dJhmaB1.net
>>82
IDだけだったらそれはIDでしかないじゃんw
煽り抜きで愚問だね。
93:デフォルトの名無しさん
15/10/08 02:10:27.33 n5xoJkAg.net
よくわからないんだけど、Nameが空なのが嫌なら投稿者クラスを作るときに情報を取得すればいいんじゃないの?
94:デフォルトの名無しさん
15/10/08 21:32:59.63 9yien46K.net
C#でinnerHTMLのような各種の<タグ>を含んだHTMLの文字列から
タグを除去してテキスト�
95:セけを取り出す簡単な方法ありますか?
96:デフォルトの名無しさん
15/10/08 22:05:59.40 O6ws46yp.net
正規表現でやりなよ
97:デフォルトの名無しさん
15/10/08 22:22:34.18 9yien46K.net
>>93
例えば
<label>文字の中に<タグもどき>が有る場合が難しそう</label>
なので、正規表現以外で良い方法有りませんか?
98:デフォルトの名無しさん
15/10/08 22:51:05.62 vx3KIWo3.net
xmlのライブラリ使えるんじゃないの
99:デフォルトの名無しさん
15/10/08 23:35:33.54 Xn3MaZ8G.net
HtmlAgilityPack使え
100:デフォルトの名無しさん
15/10/09 00:15:53.61 oggkbSfr.net
>>96
難しいですか?
101:デフォルトの名無しさん
15/10/09 05:03:09.47 DnhlxVQi.net
>>97
ぐぐれよ
URLリンク(www.atmarkit.co.jp)
102:デフォルトの名無しさん
15/10/09 10:27:53.18 oggkbSfr.net
難しそうなので諦めました
103:デフォルトの名無しさん
15/10/09 11:13:26.38 oOXSiJnl.net
なんだ釣りかよ
こんなところで釣りをするな
死ね
104:デフォルトの名無しさん
15/10/10 13:55:22.44 PcQrHOFV.net
ドラッグしながら四角形を描画したいのですが
Rectangleだと始点より右下にしかドラッグ出来ません
全方向にドラッグ出来るようにしたいのですがどうすればいいのでしょうか?
ちなみに今のコードは
g.DrawRectangle(Pens.Black, startPt.X, startPt.Y, endPt.X - startPt.X, endPt.Y - startPt.Y);
で startPtはMouseDown時 endPtはMouseMove時のマウスポインタの座標です
105:デフォルトの名無しさん
15/10/10 14:02:04.52 xPCYj4vK.net
(x,y,w,h)=(min(sx,ex),min(sy,ey),max(sx,ex)-min(sx,ex),max(sy,ey)-min(sy,ey))
106:デフォルトの名無しさん
15/10/10 14:26:32.90 S6gJKsnz.net
ifたくさん書けばいい
107:デフォルトの名無しさん
15/10/10 14:43:16.81 PcQrHOFV.net
>>102
出来ましたスパルタ先生!
まだ初心者なのでminとmaxが何か分からなかったんですがMathクラスだったんですね
ありがとうございました!
108:デフォルトの名無しさん
15/10/11 17:20:59.98 ZCWGzTkV.net
xamlでDataContextを入れ替えた時に、そのDataContextのプロパティとバインドされているコントロールの表示が更新される条件はなんでしょうか
依存関係プロパティにすれば変わるのはわかっているのですが、煩雑なのでできれば避けたいと思っています
通常のCLRオブジェクトでは変わらず
INotifyPropertyChangedだと、オブジェクトそのものを入れ替えてしまうと変更を通知するタイミングがなくてうまくいかないような気がします
うまい方法はないでしょうか
109:デフォルトの名無しさん
15/10/11 18:39:25.15 o6WYp8Zd.net
まず実際に試してみれば?
110:デフォルトの名無しさん
15/10/11 19:03:36.29 ZCWGzTkV.net
INotifyPropertyChangedを実装したオブジェクトをただDataContextに入れてみましたが出来ませんでした
プロパティの値が変わってないのでどう通知すればいいのかもわからないのですけれども
111:デフォルトの名無しさん
15/10/11 19:52:52.41 ZCWGzTkV.net
すみません勘違いしていました
ただのCLRオブジェクトを入れればきちんと反映されました
自作クラスをDependencyPropertyにしてUserControlとバインドさせて
その自作クラスで普通のCLRオブジェクトのプロパティをUserControlの中にあるコントロールとバインドさせたら
入れ替えても反映しなかったということのようです
112:デフォルトの名無しさん
15/10/11 19:55:53.79 KbfkRHMw.net
List<T> array;
が有った時に、
array.Find(x => ...
array.Where(x => ...
などをやる場合に、探索を開始するindexを指定するようなことは出来ませんか?
100番目以降の要素から探索するなど。
113:デフォルトの名無しさん
15/10/11 19:58:48.31 EnuaFgoc.net
>>109
Skip(99)
114:デフォルトの名無しさん
15/10/11 20:02:59.11 ZCWGzTkV.net
URLリンク(ideone.com)
説明できた気がしないので一応テストコードの一部を貼っておきます
DependencyPropertyをやめてただのCLRオブジェクト�
115:ノすると反映されるようになります
116:デフォルトの名無しさん
15/10/11 20:08:39.48 ZCWGzTkV.net
ああわかりました
PropertyMetadataの初期値はstaticなので使いまわされるんですね
お騒がせしました
117:デフォルトの名無しさん
15/10/11 20:40:49.95 ijISB/Tc.net
初心者すぎてぶちころされそうな質問してもいいですか?
118:デフォルトの名無しさん
15/10/11 21:24:46.54 lDigt0qz.net
かもん
119:デフォルトの名無しさん
15/10/11 21:29:23.08 ijISB/Tc.net
// xmlファイルを取得
XElement document = XElement.Load("sample.xml");
// ゲーム中のユニット情報をXMLの各要素へ書き込み
var query = (from p in document.Elements("Status")
select ★
query.Attribute("UnitID").Value = gameManager.unitStateList[i].unitID.ToString();
120:デフォルトの名無しさん
15/10/11 21:32:27.27 ijISB/Tc.net
XElement document = XElement.Load("sample.xml");
var query = (from p in document.Elements("Status")
select ★
query★
すみません途中書き込みしてしまいました
しかもsageませんでしたすみません
LinkToXMLでXML操作を書きたいです
「Status要素内」の「ID」の値を「更新」したい、というのがやりたい事ですが
★の部分はどう書けばいいでしょうか?
121:デフォルトの名無しさん
15/10/11 21:35:12.30 ijISB/Tc.net
連投すみません、間違えました
やりたい事はStatus要素内にある「全ての」要素について任意の値で更新を行いたい
というものです
多分、一つしか要素がなく、それを更新するのであればFirst()で取って
Attribute(要素名).Valueで更新できると思うのですが、全ての要素の場合はどう書けばいいのかが分かりません
122:デフォルトの名無しさん
15/10/11 21:57:00.89 lDigt0qz.net
foreach( var status in document.Elements("Status") )
{
status.ID = ...
status.Hoge = ...
}
123:デフォルトの名無しさん
15/10/11 22:30:24.51 o6WYp8Zd.net
全く些末なことだがElementsじゃなくてDescendantsじゃないかな
124:デフォルトの名無しさん
15/10/11 23:23:06.77 ijISB/Tc.net
>>118
ありがとうございます。
参考にしてやりたい事自体はできました。
XElement document = XElement.Load("sample.xml");
IEnumerable<XElement> de =
from el in document.Descendants("Status")
select el;
foreach (XElement xmlDocument in de)
{
xmlDocument.Element("id").Value = sStar.id.ToString();
xmlDocument.Element("name").Value = sStar.name.ToString();
xmlDocument.Element("class").Value = sStar.class.ToString();
xmlDocument.Element("setting").Value = sStar.seting.ToString();
}
document.Save("sample.xml");
ただ正直、全然理解できていませんが(何でforeach内のこの処理がdocumentに反映するの?とか)
125:デフォルトの名無しさん
15/10/11 23:37:17.15 o6WYp8Zd.net
突き詰めれば
class Hoge { public string Value { get; set; } }
foreach (Hoge hoge in list) {
hoge.Value = ...;
}
なんだからlistに含まれる各hogeのValue値が更新されるのは当然
XElement型のxmlDocumentとかやめてくれよ…
126:デフォルトの名無しさん
15/10/11 23:41:50.91 ijISB/Tc.net
>>121
あーなるほど、意味が分かりました
>XElement型のxmlDocumentとかやめてくれよ…
ちなみにこれはなぜでしょうか?
127:デフォルトの名無しさん
15/10/11 23:52:55.34 o6WYp8Zd.net
XMLの文脈ではdocumentは要素=elementとは違う意味を持ってる
XDocumentやXmlDocument型が存在する
128:デフォルトの名無しさん
15/10/11 23:59:38.42 ijISB/Tc.net
>>123
なるほど、言われてみれば確かに
何度もありがとうございました
129:デフォルトの名無しさん
15/10/12 07:16:36.14 oCa7NkmO.net
>>110
ありがとうございました。
array.Skip(99) .Find(x => ...
とやると、100番目以降の要素の部分配列が作成されるのは分かったのですが、
その分、処理が遅くなるなどの心配は有りませんか?
130:デフォルトの名無しさん
15/10/12 07:21:01.92 CF5nq9ai.net
>>125
>100番目以降の要素の部分配列が作成される
されない
ラッパーのイテレータが作られるだけ
131:デフォルトの名無しさん
15/10/12 07:27:25.83 xL7Yt/Nd.net
>>109
本題とは関係ないけど、List<T>型にarrayとかつける馬鹿が目の前にいたらしばき倒してると思う
132:デフォルトの名無しさん
15/10/12 07:53:05.78 oCa7NkmO.net
>>126
ありがとうございました。
もう一つ教えてください。
int[] array = new int[] { 1, 2, 3 };
foreach (var i in array)
{
i = 100;
}
iはforeach繰り返し変数なので割り当てられない
というエラーが出るのですが、どうすれば良いでしょうか?
133:デフォルトの名無しさん
15/10/12 07:57:11.52 CF5nq9ai.net
>>128
普通にループ
っていうかパフォーマンスクリティカルなところでない限りは配列をインプレースで更新したりしないで新しく作っちゃうのが今風
134:デフォルトの名無しさん
15/10/12 08:13:56.48 oCa7NkmO.net
>パフォーマンスクリティカルなところでない限りは配列をインプレースで更新したりしないで新しく作っちゃうのが今風
ということはクリティカルな場面ではforeachの中で配列を更新できますか?
135:デフォルトの名無しさん
15/10/12 09:45:46.22 4edlKvTH.net
>>127
なんで?
型で正体分かるでしょ。
その為の静的言語だし。
名前が適切じゃなきゃリファクタリングすればいいだけだし、そんなことぐらいにしか突っ込めないお前の方が馬鹿だと思う
136:デフォルトの名無しさん
15/10/12 09:47:15.78 L/1UOsEK.net
LDPC符号をC#で使いたい。
エンコーダ、デコーダ共に。
C++のsourceなら落ちてるけど、ポインタとかシフト演算使いまくりで移植しにくい。
誰かたすけて
137:デフォルトの名無しさん
15/10/12 10:05:29.20 bZxqtO6M.net
>>131
> 名前が適切じゃなきゃ
そこに突っ込んでるだけだろ
いちいちこまけーこと言うなよ
って言うならわかるけど、問題ないだろって開き直るのもどうかと思う
138:デフォルトの名無しさん
15/10/12 10:11:31.09 AiKl9MOi.net
先生「どうして宿題をやってこなかったんだ!」
生徒「やってなきゃやればいいだけ。そんなことぐらいにしか突っ込めないお前は馬鹿」
139:デフォルトの名無しさん
15/10/12 10:44:36.42 FazCyQUV.net
「犬にねこって名前をつけるのはどうかしている」
「見りゃわかるんだから好きにさせろ」
結論:シーア派とスンニ派の戦いに日本は参加すべきじゃない
140:デフォルトの名無しさん
15/10/12 10:51:02.89 L/1UOsEK.net
( ・ε・)
141:デフォルトの名無しさん
15/10/12 10:55:27.76 4edlKvTH.net
>>133
構造が違うだけで言葉自体の意味はさほど変わらない。
そして大半はiteratorでアクセスするし、インデックスのアクセスも同じ。
どこに問題があるのか教えて欲しい。
142:デフォルトの名無しさん
15/10/12 11:00:20.66 ntYAJ4A2.net
話して分からない馬鹿と会話するな
両方に命令してるからな
143:デフォルトの名無しさん
15/10/12 11:12:27.33 UFM1lTS3.net
> List<T> array
これでなんで怒ってるのかわからん。
C#のList<T>は普通の配列みたいなやつだよな
LinkedListと勘違いしてるの?
144:デフォルトの名無しさん
15/10/12 11:45:17.20 5cnLZ8t5.net
分からないなら口を挟むな
うぜえんだよボケナス
145:デフォルトの名無しさん
15/10/12 11:47:29.04 4edlKvTH.net
だから問題を指摘しろと。
まぁできないと思うよ。問題ないもん。
146:デフォルトの名無しさん
15/10/12 11:52:34.15 oVmZU7gX.net
list(一覧)と言う言葉がコンピューターサイエンスに於いて
linked listの意味で使われarray(array list)とlist(linked list)という対比で用いられることが歴史的に多かったから発狂したんだろう。
連想配列の意味でハッシュが用いられるようなもの。
.NET Frameworkはそれを正しい意味の名前に直したんだから問題はない。
147:デフォルトの名無しさん
15/10/12 13:10:29.56 Tj8wl52C.net
>>130
できません
>>129が言ってるのは
普通は
int[] array = new int[] { 1, 2, 3 };
for( var i = 0; i< array.Length; i++ )
{
array[i] = 100;
}
みたいにやれ。
パフォーマンスとメモリが気にならないなら
array = new int[]{ 100, 100, 100 };
みたいんでいいやん ということじゃね
148:デフォルトの名無しさん
15/10/12 13:37:05.60 cGJWI2K1.net
C#って、ガベージコレクションしますか?
149:デフォルトの名無しさん
15/10/12 13:49:06.51 oCa7NkmO.net
>>143
ありがとうございました。
150:デフォルトの名無しさん
15/10/12 15:00:36.92 4P8sYT2X.net
foreach(var i in (new int[]{1,2,3}).Select(x => 100).ToArray()){
Console.WriteLine(i);
}
151:デフォルトの名無しさん
15/10/12 15:03:51.40 4P8sYT2X.net
しまった
うえのarrayとかlistとか言ってるの読みながら間違えた
ToListで
152:デフォルトの名無しさん
15/10/12 15:39:30.41 FazCyQUV.net
せっかく作ったリスト捨ててどうするんだw
153:デフォルトの名無しさん
15/10/12 15:49:02.21 E/TV++i+.net
Taskのキャンセルがうまくいかないのですがどうすればうまくいくでしょうか?
一回目はキャンセルできても2回目はなぜかデッドロックしてしまいます;;
以下にソースを張ります。
CancellationTokenSource tokenSource = new CancellationTokenSource();
private void button1_Click(object sender, EventArgs e){
var task1 = Task.Factory.StartNew(() =>{
var task2 = Task.Factory.StartNew(() =>{
tokenSource.Token.ThrowIfCancellationRequested();
for (int i = 0; i <=300000000; i++){
if (tokenSource.IsCancellationRequested){
return 0;
}
}
return 0;
});
if (task2.Result == 0){
task2.Dispose();
}
}, tokenSource.Token);
}
154:デフォルトの名無しさん
15/10/12 15:49:04.48 IrWwZ6fO.net
同じクラス名で<T>付きと無しの2つのクラスを作る理由は何でしょうか?
一つのクラスにメソッド2つを用意すればいいだけなのに
155:デフォルトの名無しさん
15/10/12 15:51:43.51 wjSQdsNO.net
用途によるだろうけど、普通は、ジェネリック対応のクラスだけで間に合う。
156:デフォルトの名無しさん
15/10/12 16:10:18.51 DarJ/ebZ.net
こういうのは書くことがある
class Hoge { public static Hoge<T> Create<T>(T value) { ... } }
class Hoge<T> { ... }
var hoge = Hoge.Create(...);
157:デフォルトの名無しさん
15/10/12 16:37:22.39 S0ggbD4h.net
>>149
そのコードにデッドロックするところなんて無いと思うけど。
CancellationTokenSourceは一回キャンセル操作したら再使用できないの分かってる?
158:デフォルトの名無しさん
15/10/12 17:08:42.71 t3lNWbaJ.net
>>150
void Method<T,U>(T hoge) where T : Hoge<U>{}
みたいなメソッドだと、Uのせいで型推論が機能しなくなるので、
Hoge<T> : Hogeという形を作っておくと
void Method<T>(T hoge) where T : Hoge{}にできて型推論が効くということだと思う
159:デフォルトの名無しさん
15/10/12 17:29:26.78 IrWwZ6fO.net
うおおおお!説明が難しすぎてわからない!!
ILSpyで見るとHogeクラスとHoge<T>クラスのどちらも
HogeBaseを継承していて
HogeBaseのメソッドは引数付きなんです
そしてHogeクラスのメソッドはbaseに対して
nullを渡しています
HogeBaseをわざわざ2つのクラスに分割する意味がわかりません
HogeBaseをそのまま使わせるようにすればいいじゃないですか!
って思うんですけど、説明された型推論の関係なんでしょうか?
160:デフォルトの名無しさん
15/10/12 17:35:54.46 IrWwZ6fO.net
利用する側は
new Hoge(Action);
new Hoge(Action<T>);
という感じにできたほうが楽じゃありませんか?
それを
new Hoge(Action);
new Hoge<T>(Action<T);
という風に強制させるのはなぜなんでしょう
161:デフォルトの名無しさん
15/10/12 18:00:28.51 t3lNWbaJ.net
>>156
それは多分型推論は関係ないと思うけど、聞いた感じだと
Hoge<T>{ T obj; }みたいなメンバ変数があり、それをHogeBaseに渡しているけど
Hogeの場合はそれがないのでnullを渡してるっていうような
まあ筋の通った話に聞こえるなあ
HogeBaseだとTで型を決められないからキャストとかが不便で
Hogeがないといちいちnullを入れてやらなきゃいけなくなって不便みたいなことなんじゃないの
162:デフォルトの名無しさん
15/10/12 18:41:03.54 E/TV++i+.net
>>153
CancellationTokenSourceが一回しか使えないのは
知りませんでした。
再起は出来ないんでしょうか?
デッドロックですが使い方を間違えてまして正しくは
一度キャンセルをするとTaskが動かなくなるような
感じです。resultで実際sourceにはokと出るようにしてますがなにも反応がなくなりました。
ボタン復帰もしません
163:デフォルトの名無しさん
15/10/12 19:08:20.89 wjSQdsNO.net
>>149
なんでTaskの中でTask作ってんの?
継続タスクにしたいなら、ContinueWithでつなげれば良いだろう。
あと、そのケースなら Task.Factory.StartNewじゃなくて Task.Runを使ったほうがすっきりするだろう。
ちなみにTaskのDispose()は、無理に呼ぶ必要はない。むしろ無闇に呼び出したらタイミングによっては、厄介なことになる。
>>158
CancellationTokenSourceは、一度限り、再度使いたいならCancellationTokenSourceを作り直すしかない。
キャンセルされてたら、tokenSource.Token.ThrowIfCancellationRequested()が例外を吐いて強制終了するだけなんで
ボタンが復帰しないのは当然のこと。
164:デフォルトの名無しさん
15/10/12 19:27:19.47 E/TV++i+.net
>>159
ありがとうございます。
あ、継続タスクでも同じ動作をしますか
すいませんうっかりしていました。
TaskRunは使いたいのですが環境の問題で駄目でした。
キャンセルの方はならパブリックにするのではなく
プライベートにしてやってみてるのですが今度はキャンセルが出来なくなりました。。。
Taskキャンセルが難しいです
165:デフォルトの名無しさん
15/10/12 19:51:26.84 wjSQdsNO.net
>>160 たぶんやりたいことは、こんなところか。
private CancellationTokenSource cancelSource;
private void button1_Click( object sender , EventArgs e ) {
if( this.cancelSource != null )
this.cancelSource.Cancel(); // まだキャンセルされてなければキャンセル要求
this.button1.Enabled = false;
this.cancelSource = new CancellationTokenSource();
var token = this.cancelSource.Token;
Task.Factory.StartNew( () =>{
for( int i = 0; i < 100000; i++ ){
token.ThrowIfCancellationRequested();
Thread.Sleep( 100 );
}
} , token )
.ContinueWith( task => {
// 継続タスク(UIスレッドに切り替わって実行される)
// キャンセルされようとも正常に完了しようとも、例外が発生しても実行される。
this.button1.Enabled = true;
} , TaskScheduler.FromCurrentSynchronizationContext() );
}
private void button2_Click( object sender , EventArgs e ) {
if( this.cancelSource != null ) {
this.cancelSource.Cancel(); // キャンセル要求
this.cancelSource = null;
}
}
166:デフォルトの名無しさん
15/10/12 20:15:07.87 E/TV++i+.net
>>161
ありがとうございます。
参考例は非常に助かります。
早速やって見ます。
167:デフォルトの名無しさん
15/10/13 01:05:59.89 41s2HnED.net
>>161
どうやらCancellationTokenSourceの扱いをミスっていたみたいで
>>149の方の仰るとおりあのやり方ではブロック内で再生成してないので
一回しか扱えずこれで詰まっていたようです。
今回の参考例非常に助かり無事に期待した動きをしています。
ありがとうございました。
168:デフォルトの名無しさん
15/10/13 04:02:33.87 P4Y/UxqF.net
WebClientを使ってDownloadString(url)でhtmlを読み込む場合、
事前にそのurlに合わせてエンコーディングを指定すると上手く行くのですが、
UTF-8を指定してSJISのヘージを読むと当然文字化けしてしまいます。
読み込むページのエンコーディングを自動的に認識するなどの機能はありませんか?
169:デフォルトの名無しさん
15/10/13 04:44:41.46 7dOTeKt2.net
ありません。
170:デフォルトの名無しさん
15/10/13 05:03:23.35 P4Y/UxqF.net
>>165
じゃあどうすれば任意のurlを文字化けせずに読み込めますか?
171:デフォルトの名無しさん
15/10/13 06:43:34.47 YzZ6qWCc.net
そりゃあ…DownloadDataでbyte[]を取ってきて
自分でエンコーディングを推定してStringに変換するに決まってんだろ
言わせんなよ恥ずかしい
172:デフォルトの名無しさん
15/10/13 08:45:24.81 xr5l46tc.net
相手サーバが有能ならDownloadDataした後のResponseHeadersからContent-Typeを参照することもできるぞ
173:デフォルトの名無しさん
15/10/13 09:06:53.64 P4Y/UxqF.net
>>167 >>168
確かにこの方法で出来そうなのですが、URLによっては
リモート サーバーがエラーを返しました: (500) 内部サーバー エラーです
Status ProtocolError
と出る場合が有りますが。
174:デフォルトの名無しさん
15/10/13 09:17:24.10 IPzu3dLL.net
ブラウザでは読み込めるならCook
175:ieが正しく設定されてないとかだろ 決まった値でいいならブラウザのデバッガで通信を監視してその通りにリクエスト送ればいいけど、 セッションが必要ならRubyのMechanizeみたいなの使わないとすぐに動かなくなる 非常に面倒だから本当にそのページが重要なのでない限りは諦めた方がいい
176:デフォルトの名無しさん
15/10/13 10:52:29.13 P4Y/UxqF.net
>>170
情報ありがとうございました。
RubyのMechanizeというのを少し調べてみたのですが、C#でこういうのは
ありませんか?
177:デフォルトの名無しさん
15/10/13 11:18:31.92 IPzu3dLL.net
Selenium使えば?
178:デフォルトの名無しさん
15/10/13 12:02:46.15 7dOTeKt2.net
>>168
あとは、一旦、ASCIIで読み込んで、HTMLの<META>タグ判定するぐらいか。
179:デフォルトの名無しさん
15/10/13 19:36:16.73 bwylg/oX.net
初学からc#及び.NETが一人前と言われるレベルになるにはどんな勉強していったらいいかな?
1.オブジェクト指向の基礎を学ぶ(参考書の選択肢はJAVAのが多かったのでJAVAを選択)
2.(今のところWEBがメインなので)HTML,CSS,javascriptの基礎
3.HTTPやTCP/IPの基礎
4.C#3.0以降の技術(LINQ等)
5.デザインパターンを一通り網羅
6.リファクタリングの手法を習得
7.CODE COMPLETE等を読んで基礎固め
8.ASP.NET MVCの基礎、MVC等のレイアー層の理解
今のところこんな感じで進めてるけど
まだまだ足りない所ばかりで成長遅い。
どこかでC言語の勉強もしなきゃいけないと思ってるし...
180:デフォルトの名無しさん
15/10/13 19:45:39.68 xI0jh4Ci.net
まずゴールを明確にする
具体的にどんな仕事をして誰に一人前と言われたいのか
SIerでドカタやるだけならそんだけできたら一人前どころかエースだ
181:デフォルトの名無しさん
15/10/13 19:54:30.96 7dOTeKt2.net
>>174
いろいろ言いたいことはあるが、C#ならサイトなら未確認飛行の人のサイトをお勧めする。
ArrayListとか使ってる入門サイトは、ゴミ以下だ。何の役にも立たないから気をつけろ。
非同期処理でThread(生スレッド)使ってる解説もゴミ以下だから、窓から投げ捨てよう。
C#とJavaと同じとかいう奴に出会したら、にわかなので軽くスルーしよう。
c#使いが覚えるべきことは、
拡張メソッドとIEnumerable<T>の関係性だろう。
こいつを理解できれば、LINQは、理解できたもの同然。
INotifyPropertyChanged
WPFなどのMVVMを理解する上で欠かせない。
Taskとasync , await
非同期関係は、だいたい、これで間に合う。
あと、余裕ができれば、Rx周りに手を出しても良いだろう。
182:デフォルトの名無しさん
15/10/13 20:11:30.28 YzZ6qWCc.net
不法投棄犯の言うことを信用して良いものか…
183:デフォルトの名無しさん
15/10/13 20:16:29.39 P4Y/UxqF.net
C#で関数の引数でrefを使えばCのポインタのような
動作になると思うのですが、文字列、配列、構造体、クラスなど
受け渡しする時にrefを使うと効率良くなって動作が速くなりますか?
184:デフォルトの名無しさん
15/10/13 20:34:16.68 Jlc+RBff.net
>>176
そういえばゴールはあまり明確にしていませんでした。
とりあえず目標?は
・新しいシステムを作るときに、良い設計手法、技術を用いてそれを形にできるスキルを身につけたい
・別の会社にいっても、通用するような基礎を身につける
ですね。正直今のSIer企業には、ずっといたくないと考えているので
転職前に早くスキルを身につけたいところです。
>>177
アド�
185:oイスどうもです。 LINQ周りの考え方については結構調べました。 INotifyPropertyChangedや非同期関連は、まだ浅いので詰めて行きたいです。 Rxまで早くたどり着きたい...
186:デフォルトの名無しさん
15/10/13 21:32:56.02 4DY03Csk.net
>>178
状況次第だ
しかしそのような質問が出てくる時点で君には時期尚早と言える
187:デフォルトの名無しさん
15/10/13 21:37:37.13 IPzu3dLL.net
>>179
個人的には関数型言語覚えるのがお勧めだな
実務で使わないとしても、プログラミングセンスを磨くには最適
細かい技術なんて基礎さえできてればその都度ググればいいこと
188:デフォルトの名無しさん
15/10/13 21:53:19.65 3EVIu19y.net
>>178
C#においては「参照型」と「値型」の区別が重要だよ
参照型はclass、値型はstructやプリミティブ型だよ
189:デフォルトの名無しさん
15/10/13 22:14:15.51 JgCmGigF.net
↑これがこの板を象徴するアスペなレス
190:デフォルトの名無しさん
15/10/13 22:20:08.70 P4Y/UxqF.net
>>182
それは知っているのですが、
そういう前提で、とりあえずrefを入れまくっておけば
速くなることはあっても遅く成る事は無いですか?
191:デフォルトの名無しさん
15/10/13 22:24:23.58 IPzu3dLL.net
>>184
参照型は遅くなる
元々ハンドルを渡してるだけなのにその上余計な間接アクセスが入るから
192:デフォルトの名無しさん
15/10/13 22:47:11.18 7dOTeKt2.net
refの使い道は、そもそも速度を稼ぐためではないからな。
16バイト以上の構造体(値型)であれば、コピーコストを抑えることができるので若干、速くなる。
class A {
string hoge;
void Run() => Set( ref hoge );
void Set( ref string n ) => n = "aaa";
}
こうすれば、Setメソッドで hogeが書き換わるようになるだけ。
これを利用したのがLazyInitializer.EnsureInitializedあたりの遅延初期化あたり。
また、仮に速度向上が見込まれるとして何でもかんでもrefを使うと可読性が悪くなるだけでなく、余計なバグの温床になるだろう。
193:デフォルトの名無しさん
15/10/13 23:33:34.52 wNVuw2e3.net
>>174
1しかやってないけど年収一千万超えてるわ俺
194:デフォルトの名無しさん
15/10/14 00:11:28.33 9EHqXlxG.net
俺はrefを使ったことがない・・・
195:デフォルトの名無しさん
15/10/14 00:15:52.35 6bQwcZBR.net
>>188
それが普通。
少なくとも好き好んで使うような物じゃないでしょ
196:デフォルトの名無しさん
15/10/14 01:11:41.08 3R4nuN13.net
refはメソッド内で引数を書き換えるよってことだから早々使わない
outは使うことがあるかも
複数値リターンがあればいらないんだけどね
197:デフォルトの名無しさん
15/10/14 01:41:54.81 KX7liTZS.net
DirectXやWinAPIをやらないなら使わないよねー
198:デフォルトの名無しさん
15/10/14 02:17:16.60 zAeiUrE8.net
XNAの算術ライブラリはref祭りじゃったのう(遠い目)
199:デフォルトの名無しさん
15/10/14 09:46:15.40 Kzgl2aXh.net
遅延初期化系のメソッド使うときは、ref使う。
System.Threading.LazyInitializer.EnsureInitialized( ref x );みたいなやつ
200:デフォルトの名無しさん
15/10/14 10:43:03.02 /REmo4T1.net
お前らすげー詳しいけどPG?SE?
周りに詳しい人いないから誰にも聞けないわ
201:デフォルトの名無しさん
15/10/14 10:59:37.46 H7Zj+QeL.net
大抵の情報はググったら出てくるだろw
202:デフォルトの名無しさん
15/10/14 13:27:10.88 C7hQw/KG.net
そーなんだけども、ググると古い情報の方が上位に来やすい罠が
203:デフォルトの名無しさん
15/10/14 16:31:12.31 aOACpiFq.net
refはINotifyPropertyChangedの実装で使うのを見た時になるほどと思った
URLリンク(stackoverflow.com)
204:questions/1315621/implementing-inotifypropertychanged-does-a-better-way-exist
205:デフォルトの名無しさん
15/10/15 18:28:08.01 2u28QwcF.net
string line = "fjlast●je■woi▲utgal;jgas";
do{
int pos = line.IndexOfAny(new char[] { '●', '■', '▲' }, pos);
if(pos==-1)
break;
pos++
while(true);
こういう探索をする場合、上例のように
new char[] { '●', '■', '▲' }
をループの中に入れると毎回newされて効率悪くなったりしますか?
事前に
const array = new char[] { '●', '■', '▲' };
として、ループの中では
int pos = line.IndexOfAny(array, pos);
とすべきですか?
206:デフォルトの名無しさん
15/10/15 18:37:34.62 fomBTPP1.net
原則としてはそうね
だけど全体の処理から考えると誤差以下よ
207:デフォルトの名無しさん
15/10/15 22:37:02.52 2u28QwcF.net
>>199
ありがとうございました
208:デフォルトの名無しさん
15/10/17 08:47:07.62 b8m6XFK1.net
構造体矩形を作ってメンバーが座標とサイズだった場合直生Xを変更したり出来ないのか・・・不便
209:デフォルトの名無しさん
15/10/17 08:54:54.81 FN3G7dO/.net
プロパティ実装すればそれっぽくなるだろ
どうしてもフィールドを直接弄りたいなら StructLayout(LayoutKind.Explicit) + FieldOffset でunion相当が実現可能
210:デフォルトの名無しさん
15/10/17 12:06:28.13 HFus6TsS.net
RECT定義しちゃえばいいだろ
って話じゃないのか?
意味不明
211:デフォルトの名無しさん
15/10/17 12:08:03.62 TjssbBGs.net
違うかもしれんけど、>>201が言ってるのは別のクラスのプロパティの型がRectだった場合のことかね。
そうだとしたら、でもそこが値型のメリットでもあるわけで、まあちゃんと理解して使えとしか。
212:デフォルトの名無しさん
15/10/17 12:16:22.10 b8m6XFK1.net
>>204
そういう事
213:デフォルトの名無しさん
15/10/17 12:21:07.89 TjssbBGs.net
>>205
参照型でRectを作った場合でも、まともなセンスの人なら>>201みたいなことができないように講じる
(Rectをイミュータブルにする)わけで、同じなんだけどね。
214:デフォルトの名無しさん
15/10/17 12:44:09.96 b8m6XFK1.net
GCは時間掛かるから出来るだけ値型を使ったほうがいいって聞いたんだけどどうなの
215:デフォルトの名無しさん
15/10/17 15:11:26.94 y+IPLvAO.net
川俣晶のソースコードを見ると何かムカつきます
いったいどうしたらいいんですか?
(´・ω・`)
216:デフォルトの名無しさん
15/10/17 15:21:06.30 c8KbfCFX.net
>>208
それは中二病の症状です。
20歳を超えて発症した場合は恐らく一生治りません。
定めだと思って諦めて一生青春しててください。
217:デフォルトの名無しさん
15/10/17 16:01:56.58 HUgpKArY.net
アトミック処理間におけるタスクスイッチングについて5行以内で語って下さい
218:デフォルトの名無しさん
15/10/17 16:32:12.70 YVKz2Gue.net
>>207
嘘
短寿命オブジェクト用のGen0GCはクソ速いから、
クラスをnewするならするですぐに使い捨てるのがよい
219:デフォルトの名無しさん
15/10/17 16:54:05.33 ceUp4SbX.net
>>211
あ、マジか…
60FPSなら16msで一周しないといけないけどGCは30msくらい掛かるって書いてあったから心配してた
220:デフォルトの名無しさん
15/10/17 20:48:01.48 lEhwHPlH.net
全然関係ない話だけど、Windows10騒動とかマイクロソフトやばくなってきたな
Windows崩壊とか勘弁ですよ
221:デフォルトの名無しさん
15/10/17 21:30:39.49 Qv9BWxTI.net
マイクロソフト帝国は崩壊の渦中
アップルも新しいものを生み出せずに飽きられたら将来はどうなるかわからん
222:デフォルトの名無しさん
15/10/17 22:12:12.95 1b1MshO0.net
Win10騒動より、.NET4.0~4.5.1狙い撃ちのサポート切れの方が怖い
223:デフォルトの名無しさん
15/10/17 22:13:36.87 ixXAzgg3.net
>>215
狙い撃ちってどういう意味?
224:デフォルトの名無しさん
15/10/17 22:14:17.57 lZc14wWH.net
>>215
詳し区
225:デフォルトの名無しさん
15/10/17 22:30:15.39 1b1MshO0.net
>>216-217
いや、単に.NET4.0~4.5.1が来年の1月12日にサポート切れて4.5.2以外サポート対象外になるだけの話なんだわ
URLリンク(www.atmarkit.co.jp)
.NET Framework 3.5 SP1および3.5.1
.NET Framework 4.5.2
3.5.1以前は下位バージョンが内包されているからいいんだが、4.0~4.5.1は4.5.2入れろ
必要ならば動作検証し直してねとMSが明言しているから扱い面倒そうだなと
226:デフォルトの名無しさん
15/10/17 22:37:10.95 FN3G7dO/.net
そういうの気にするようなところだと3.5→3.5.1とかでもどのみち大騒ぎだよ
.NETのマイナーバージョン間非互換ってインストールパスに依存してる糞アプリがあるかもしれないとかそんなレベルだし
227:デフォルトの名無しさん
15/10/17 22:42:15.32 ixXAzgg3.net
>>218
現時点で4.6出ているけど4.5.2はずっとサポートされると思っていいんだろうか
それとも今後新バージョンが出るたびに動作検証し直さなければならない?
228:デフォルトの名無しさん
15/10/17 22:43:10.59 S84Ssc/e.net
噂を信じちゃいけないよってか
229:デフォルトの名無しさん
15/10/17 22:49:06.59 /7+5znpF.net
>>218
仮に4.5.1がサポートされてたらWin10に上げても検証しなくていいのか?
どう考えても.NETのバージョンなんかよりWin10へ上げること自体の方が遥かに問題になる可能性が高いだろ
230:デフォルトの名無しさん
15/10/17 23:23:15.70 ixXAzgg3.net
>>222
Win10に上げるのは自己責任じゃねーの
4.5.2には上げざるを得ないから対応しろと言われかねない
231:デフォルトの名無しさん
15/10/18 01:04:40.12 /DhocndZ.net
バージョンがうんたらとかいうよりも、マイクロソフトの信用がなくなってしまったという感じだよ
232:デフォルトの名無しさん
15/10/18 12:54:14.13 i95LMF8H.net
interfaceと自動化テストを適切に使えば互換性なんて大した問題にならないだろ
C#使いはみんなアホなのか
233:デフォルトの名無しさん
15/10/18 13:00:46.03 ivrEFHM8.net
自動テストなんてファンタジーですよ
✕C#使いはアホ
○日本のITはアホ
234:デフォルトの名無しさん
15/10/18 13:26:26.09 rT2sf8QY.net
そんなことよりいつタプルとレコードとパターンマッチが使えるようになるんだ
235:デフォルトの名無しさん
15/10/18 16:09:43.90 /DhocndZ.net
URLリンク(it.srad.jp)
マイクロソフト工作員暴れすぎだろ、見境なくなってる
末期症状だな
236:デフォルトの名無しさん
15/10/18 16:13:20.14 /DhocndZ.net
タプルもいいけど匿名型を型宣言させてほしい
こまごましたクラスで名前空間汚れる
237:デフォルトの名無しさん
15/10/18 16:36:13.19 tIhTJhT+.net
>>228
重症の2ch脳だな。酷い馬鹿だ。
238:デフォルトの名無しさん
15/10/18 17:53:35.54 EteQ/5LB.net
VSって#hogeの自動補充機能ないの?
239:デフォルトの名無しさん
15/10/18 17:54:02.78 rT2sf8QY.net
匿名型をちゃんとタプルにしておけば「C#でTupleをnewするコードがクッッソダサイww」
とか馬鹿にされることもなかったのにな
アンダースは細かい使い勝手を改善するような変更に対してすごく保守的だった
拡張メソッドもstaticクラスでしか作れないみたいな嫌がらせを受けたままだし
240:デフォルトの名無しさん
15/10/18 17:56:00.48 hcyPsAl4.net
拡張メソッドはそこいらにばらまかれるより一箇所にまとめとかれるほうがいい気がするからいまのままでいい
241:デフォルトの名無しさん
15/10/18 18:22:39.24 rT2sf8QY.net
recordにパターンマッチがくればデータと手続きの分離が進むだろうから
データクラスと別に手続きクラスを用意するのは自然になっていくと思う
ただ手続きを探すためには圧倒的に.を打ってインテリセンスに名前が出たほうが便利だから
拡張メソッドは第一線で使われるものになっていくだろう
それで拡張メソッドをstaticクラスにまとめること自体はいいんだが
問題はstaticクラスの内部で型が作れないことなんだよなあ
多値を返すためにoutみたいな奇道を使わない場合structを定義しないとどうしようもないが
トップレベルに書くと名前空間が汚れすぎる
まあそれもタプルが来れば解決か
242:デフォルトの名無しさん
15/10/18 21:06:11.60 O3txSH0M.net
ITの技術書籍って8割方意味なくない?
ほとんどはネットでググれば出てくるし
唯一金出して買うって書籍はせいぜい洋書の翻訳版くらいだよな?
243:デフォルトの名無しさん
15/10/18 21:10:59.06 Fyu9IAr8.net
初心者にとって意味があるんだろ
自動アップデートが実装されない限り技術書籍は買う気にならないが…
244:デフォルトの名無しさん
15/10/18 21:11:18.08 S+d/GOeW.net
経験に基づく実践的な内容なら価値はあるんだが、
大抵の技術書の著者って技術評価みたいなことしかしてない奴ばっかりだから
ほんとにネットでググったtipsが羅列されてるだけみたいなのが多い
245:デフォルトの名無しさん
15/10/18 21:13:06.08 1K54QMcp.net
>>235
独学や素人だと結構本が理解の入り口になると思うよ
ただ、記述ミスが結構あって逆に理解に苦しむことがあったり、
著者が理系脳で、わからない人にわかるように表現されてない
わかるひとが読めばわかるが、わからない人が読むとさっぱり・・・
悲しいかな、購入者はわからない人がほとんどなのだけどね
で、ネットの情報や複数の本で補完せざるを得ない
そういう意味ではネットでいいというのもうなずけるけど・・・
246:デフォルトの名無しさん
15/10/18 21:26:39.43 O3txSH0M.net
初心者にとっては意味があるってのも正直分からん
初心者だってググれば知りたい事出てくるんだから、書籍を買う意義の在処が無いでしょ
247:デフォルトの名無しさん
15/10/18 21:41:31.99 CUxV7ZEj.net
>ただ、記述ミスが結構あって逆に理解に苦しむことがあったり、
>著者が理系脳で、わからない人にわかるように表現されてない
>わかるひとが読めばわかるが、わからない人が読むとさっぱり・・・
このへんはネットの情報でもたいして変わらんと思うが。
加えて、ネットだと
・断片的なトピックしか書いてない
・そもそも間違っている
ってのも割合としては多くなるな。
248:デフォルトの名無しさん
15/10/18 22:47:11.00 Fyu9IAr8.net
初心者はぐぐらない
もしくはぐぐるためのキーワードを知らない
249:デフォルトの名無しさん
15/10/18 23:12:02.85 0PlCKIO2.net
書籍のメリットは
情報が主題に沿ってまとまってる
その情報が編集されて主題にそって提示されている
の2点
つまり編集されていると言う事に意義を感じないなら価値はないな
250:デフォルトの名無しさん
15/10/18 23:17:11.53 ZeZpTvFb.net
C#の文法とかデスクトップアプリに関してならネットの情報だけでも十分なんだが
ASP.NET関係だとネットだけだと断片的過ぎてな
初心者は本を買わざるを得ないだろう
おまけに文法本と違って本の選択肢も少ないという問題もある
251:デフォルトの名無しさん
15/10/18 23:21:12.01 1MrL9p77.net
>>243
俺はこの一年でvb、c++、c#、asp.net、js、php、その他全部ネットで習得したよ。一冊も本は買っていない。
252:デフォルトの名無しさん
15/10/18 23:26:42.33 /DhocndZ.net
サーバー側は、C#というかWindowsで組むことないからな、開発者の絶対数が少なくて情報もないって感じだ
自分も作っているのはデスクトップアプリオンリーだし
無料のレンタル鯖にC#で組めるcgiとかできたら嬉しいんだけどね(←時代に置いて行かれたおっさんw)
253:デフォルトの名無しさん
15/10/18 23:30:25.33 ZeZpTvFb.net
>>245
来年登場予定のASP.NET5はリナックスでもMACでも動くという触れ込み
フレームワークがオープンソースの.NET COREに代わる
これで普及すればいいんだがな
254:デフォルトの名無しさん
15/10/18 23:40:24.72 FU6fHshJ.net
ASP.NET5はMVC系ベースで以前のものとは互換性ないんだけどね
MVCの方でいいんなら今でもMonoで動くよ
255:デフォルトの名無しさん
15/10/18 23:46:53.39 1MrL9p77.net
>>246
iisもlinuxに移植されるの?
256:デフォルトの名無しさん
15/10/18 23:47:34.93 /DhocndZ.net
難しい事はええからpublic_html/binあたりにcs書いて、そいつがSystem.Console.OutにHTML書いたらOKにしてください
軽くperl書くノリくらいで、って感じですw
257:デフォルトの名無しさん
15/10/18 23:50:52.54 ZeZpTvFb.net
>>248
iisが移植されることはないでしょ
むしろASP.NET5はwebサーバー依存じゃなくなってるのでアパッチでも何でも動くのが売り
258:デフォルトの名無しさん
15/10/18 23:55:05.84 1MrL9p77.net
>>250
iisの設定画面に慣れているがapacheあまり知らないので不安だなあ
259:デフォルトの名無しさん
15/10/19 00:26:53.06 VNgGX25K.net
入門書にしろ、入門サイトにしろ、初心者は余計なことを考え出して深みにはまる奴いるよなw
260:デフォルトの名無しさん
15/10/19 00:29:12.84 kIMtGLET.net
ペアプログラミング()もそういう意味ではありなのかもな
261:デフォルトの名無しさん
15/10/19 00:48:22.49 pvWtLvxK.net
>来年登場予定のASP.NET5はリナックスでも
何を言ってるんだこのばかは
262:デフォルトの名無しさん
15/10/19 00:53:57.97 cS+kHoUQ.net
>>254
馬鹿はお前
263:デフォルトの名無しさん
15/10/19 02:29:19.17 /AkA90sI.net
asp.net5のホスティングはkestrelがデファクトになりそうかな。
ただ、SSL関連とか、機能が足りないところがあるので、そこはnginxとかapache(+middleware)と組み合わせて使う必要があるかも。
264:デフォルトの名無しさん
15/10/19 03:18:42.76 D6E0OVv3.net
メンドクサそうだな
265:デフォルトの名無しさん
15/10/19 05:27:57.56 c9jTiL6V.net
Bitmapオブジェクトの使い方がよく分かりません
詳しく教えてください
(´・ω・`)
266:デフォルトの名無しさん
15/10/19 06:15:38.35 NjHqWI/s.net
public void Hoge<T>(T t)
ジェネリックメソッドの
引数にインターフェースを入れさせないようにできませんか?
もしくはインターフェースならreturnするような処理を書きたいです
メソッド内で更にTを使ってインスタンスを生成するので
インターフェースだと問題なのです
267:デフォルトの名無しさん
15/10/19 06:37:27.02 E3V4kHKJ.net
>>258
いやです
>>259
public void Hoge<T>(T t) where T : new()
とか
268:デフォルトの名無しさん
15/10/19 07:05:12.11 NjHqWI/s.net
>>260
制約条件というのがあったんですね
ありがとうございます
269:デフォルトの名無しさん
15/10/19 07:26:11.69 v19BRXDY.net
void Hoge<T>(Func<T> factory) {
var t = factory();
のようにデリゲートを渡す手もある
これならインターフェースで問題ないし間接的にコンストラクタに引数渡すこともできる
Func<T>のかわりにLazy<T>でもいいけどやってることは同じ
270:デフォルトの名無しさん
15/10/19 10:54:18.39 NjHqWI/s.net
>>262
デザインパターンですよね?そちらの方がいいのかな?
public static IEnumerable<T> Select<T>(string dbFile, string tableName, string ptn) where T:new()
{
using (var connection = GetConnection(dbFile
271:)) { connection.Open(); try { var sql = "select * from " + tableName + " where name like '%" + ptn + "%'"; return connection.Query<T>(sql); } catch (Exception e) { Console.WriteLine("SelectError={0}",e.Message); } return null; } } こんな感じのdllを作っている途中なんですが
272:デフォルトの名無しさん
15/10/19 10:56:15.66 v19BRXDY.net
そんなもんdapperでいいだろ
作る意味なし
273:デフォルトの名無しさん
15/10/19 11:15:29.47 PGvR7XY7.net
そもそもInterfaceだけ排除したいなんて要件に疑問を持った方がいいと思うよ
274:デフォルトの名無しさん
15/10/19 11:21:13.07 kIMtGLET.net
むしろ入力を制限するためにインターフェース使うパターンの方が多いと思ってたわ
275:デフォルトの名無しさん
15/10/19 16:42:20.38 NjHqWI/s.net
>>265
Interfaceだと
return connection.Query<T>(sql);
ここでエラーになるんです
動的に生成されたあらゆるdbのテーブルにアクセスできるような
関数が書きたいんですが難しくて試行錯誤してます
276:デフォルトの名無しさん
15/10/19 17:04:32.33 6CTsRO/G.net
ウインドウズストアアプリって
難読化とかしなくてもILは読めないものなんですか?
無対策でいけますか?
277:デフォルトの名無しさん
15/10/19 17:08:11.74 D6E0OVv3.net
うおぅ、C#開発中止になった
うぶんつ行き
マイクロソフトもぅあかん・・・なんやってんだよこいつ等
278:デフォルトの名無しさん
15/10/19 17:35:49.86 h/O11m5h.net
>>268
読まれると困るロジックはクラウドにポイしなさい
279:デフォルトの名無しさん
15/10/19 17:38:41.70 bIFzKXU5.net
Bitmapオブジェクトを生成したらBitmapクラスにCreateGraphicsメソッドは無いから
GraphicsクラスのFromImageメソッドを使ってBitmapオブジェクトを渡すとGraphicsオブジェクトを返してくれるんかぁ
FromImageメソッドってなんでFromImageって名前なんですか?
何か許せんなぁ
(´・ω・`)
280:デフォルトの名無しさん
15/10/19 17:40:34.47 yeB94VZ+.net
>>269
風説の流布
MSに訴えられても知らないよ
281:デフォルトの名無しさん
15/10/19 17:44:09.65 6CTsRO/G.net
>>270
What the...
282:デフォルトの名無しさん
15/10/19 17:44:59.65 bIFzKXU5.net
C#よりプチコン3号のほうが
よっぽど分かりやすいわ
(´・ω・`)
283:デフォルトの名無しさん
15/10/19 18:35:23.16 E3V4kHKJ.net
>>274
プチコンやってろよ睾丸AA野郎
284:デフォルトの名無しさん
15/10/19 22:12:15.18 ZagPftKb.net
コマンドソフトもスプリクト言語じゃ作りにくいけど、自分用の自動化ツール作りたい時とかには便利だな
画像の余計な透明削除ツール作ったら画像編集作業が5倍くらい早くなった
285:デフォルトの名無しさん
15/10/19 22:30:31.92 v19BRXDY.net
Winでスクリプト使うならPythonだな
設計思想でC#と共通する部分が多いからC#使いには馴染みやすいはず
286:デフォルトの名無しさん
15/10/19 22:41:25.04 ZagPftKb.net
ただスプリクト言語苦手だからc#でいいや…
3時間あれば自動化ツールくらい作れるし
動型言語は本当に無理
287:デフォルトの名無しさん
15/10/19 22:55:04.13 v19BRXDY.net
スクリプト言語使うかはともかく、画像の余白削除なんかimagemagick使ったらコマンド一発でできるぞ
さらにそのコマンド実行も自動化しようすればスクリプトが欲しくなる
288:デフォルトの名無しさん
15/10/20 01:58:38.69 FqqyKFc+.net
>>271
逆になんて名前をつけるの?
289:デフォルトの名無しさん
15/10/20 02:03:28.20 ihl8OErt.net
>>271
Image側のインスタンスメソッドが存在しない点じゃなくてそっちかw
ImageはBitmapだけじゃないのは理解してるんだよね?
290:デフォルトの名無しさん
15/10/20 03:17:45.27 fy+ITDgZ.net
TypeScript使える
291:デフォルトの名無しさん
15/10/20 20:37:49.08 +C/uSyXL.net
TypeScriptはjavascriptの位置に入っていくもので上にあげられてるような用途には向いてない
292:デフォルトの名無しさん
15/10/20 21:27:22.38 XSRvNUEe.net
node.jsとasp.net mvcなら
293:日本ではどっちが資料豊富だろう
294:デフォルトの名無しさん
15/10/20 21:31:07.79 aserhZ1U.net
>>284
その二つは比較されるものなんですか?
私は後者しか使った事ないんですが、前者は名前だけ知っています
295:デフォルトの名無しさん
15/10/20 21:35:02.48 VizItIQ4.net
node.jsが選択肢に入れられる用途ならnode.jsでいいだろ
ASP.NET MVCって大規模業務アプリケーション向けだぞ?
296:デフォルトの名無しさん
15/10/20 22:53:52.64 n2Rswrrf.net
ASP.NET MVCで大規模とか
悪夢しか想像できないな
中規模の「動けばいい」的なトコしか使い道がない
中途半端な存在
297:デフォルトの名無しさん
15/10/21 00:12:55.70 1DhnI/Al.net
C#はチューリング完全ですか?
298:デフォルトの名無しさん
15/10/21 00:17:50.65 +buqe22N.net
素のnode.jsと比べるなら
フレームワーク使わずに素のC#のHttpListenerだろ
299:デフォルトの名無しさん
15/10/21 02:50:58.77 KS4N6B3g.net
AesManagedクラスでファイルを暗号化しようとしてて、
キーはプログラム内で保持して固定にするつもりなんだけど、IVはどう扱ったら良い?
①暗号化する毎にIVを変更して、暗号化したファイルの先頭に書き出す。
②IVもプログラム内で保持して固定。ファイルには書き出さない。
300:デフォルトの名無しさん
15/10/21 08:02:33.67 J5wjnr6G.net
「レコード」クラスとそれをコレクションするクラスを作成しました
「レコード」クラスの「○○フラグ」は「キーワード」のグループ毎に1件状態にしたい
そこで考えたのが
「レコード」クラスに「○○フラグの変更時に呼ばれるアクション」を追加
「○○フラグ」プロパティのセッターで上記のアクションを呼ぶ(循環呼び出し排他制御付き)
コレクションするクラス側で「キーワード」のグループ毎に1件状態にするメソッドを実装
コレクションに追加する時に「レコード」のアクションにメソッドを呼ぶラムダ式を代入(※)
これで一応期待する動作になるのですが
「レコード」を破棄する時に(※)で代入したアクションはNULLクリアしないと
コレクションからの参照が残って不味いとかあるのでしょうか?
301:デフォルトの名無しさん
15/10/21 08:21:14.32 zYXo0lV4.net
バカはホントに珍妙なこと考えるのな
302:デフォルトの名無しさん
15/10/21 09:06:19.97 7McFBYAy.net
意識高い系の人キター
303:デフォルトの名無しさん
15/10/21 11:04:42.43 ErXzvicf.net
>>290
プログラムがキーを持ってる時点でもうどうでも良くない?
304:デフォルトの名無しさん
15/10/21 12:31:41.91 IzAQ78jc.net
>>291
難しく考えすぎ
そんなもんDictionaryにキーワードとフラグのペアを持たせといてレコードクラスのsetterで更新したらええがな
getterもそのDictionaryから値を取得して返すだけ
Dictionaryのインスタンスはデータコンテキスト的なクラスを作ってその中にラップして共有すればいい
305:デフォルトの名無しさん
15/10/21 15:30:16.81 12+gm44t.net
>>291
全体の一部であるレコードが
全体を視野に入れてユニークかどうか判別するのは
好ましいとは思わないな
その部分は分離したほうがいいよ
306:デフォルトの名無しさん
15/10/21 15:40:29.52 12+gm44t.net
>>291みたいなサンプルコードよくあるよね
UserEntityにdbを操作する静的メソッドを用意する
クラス一つだけで済むのでサンプルとしてはわかりやすいけど
307:デフォルトの名無しさん
15/10/21 16:15:53.93 J5wjnr6G.net
>>295 - 297
レス有難うございます
最初はレコードクラスに「○○フラグChanged」イベントを作り
コレクションクラスでそれを購読して対応しようかと思ったのですが
アクションで代入したらGCの回収対象になるのかな?
もしそうなら購読解除が要らないので少し楽できるかなぁ的な安易な考えでした
他の実装方法も含めて勉強してみます
重ねて
308:有難うございました
309:デフォルトの名無しさん
15/10/21 16:26:42.47 12+gm44t.net
なんで初心者って見栄えや速度、GC、シンプルなコードを気にするんだろ
まず動くもの作って問題が出てから考えればいいのに
CLR使っている以上単純なコンソールアプリですら100MB以上も容量食うんだよ?
その上で数KBのメモリ増減なんて気にすることあるのかって思うわ
310:デフォルトの名無しさん
15/10/21 16:41:42.12 3TuEHh7e.net
>CLR使っている以上単純なコンソールアプリですら100MB以上も容量食う
なんだ初心者か
311:デフォルトの名無しさん
15/10/21 17:31:13.67 vLvdh1RP.net
よくわかってない状態で無理にメモリや速度、気にした結果、逆効果ってことはよくある。
例えば、クラスは、ヒープ汚すから構造体で…とかやってると、コピーコストで速度低下、結局見えないところでボクシングしまくってGCに負担掛けるとか
312:デフォルトの名無しさん
15/10/21 18:58:14.00 IzAQ78jc.net
なんでも一般化しようとするのは初心者にありがちなパターン
~Changedみたいなのが出てきたら、本当にそこに拡張性を持たせる必要があるのかどうかよく考えたほうがいい
仕事でやってないと、クラスのインターフェイスといえば.NETのコンポーネントみたいな本当に一般的なものばかり目にするから
ああいうふうに作るものだと誤解しやすいんだろうね
313:デフォルトの名無しさん
15/10/21 19:19:34.54 vLvdh1RP.net
無理によくあるデザインパターンを取り入れようとして手段と目的が逆になるやつか。
314:デフォルトの名無しさん
15/10/21 19:34:17.96 3TuEHh7e.net
初心者としてはそのプロダクトで損をしても
教育的効果として無理からデザパタに従うということもある
どっちがいいか分からんね
315:デフォルトの名無しさん
15/10/21 19:35:01.65 1DhnI/Al.net
Observerの一つがフィールドを変更
↓
Subjectに変更を通知
↓
Subjectが全Subjectに通知
このObserverモデルっておかしいですか?
316:デフォルトの名無しさん
15/10/21 22:05:26.95 17YEFPhW.net
>>305
それ以前にObserverを根本的に誤解している
ObserverパターンではSubjectがイベントソースでObserverがイベントリスナだぞ
逆
317:デフォルトの名無しさん
15/10/21 23:04:08.68 w/HuBnl5.net
observeなんて義務教育レベルの語彙だろw
318:デフォルトの名無しさん
15/10/22 17:12:48.15 YiIFkN4t.net
みなさんは
変数とかメソッドを選択したい時に
Ctrl+Shift+矢印キーで
選択してますか?
(´・ω・`)
319:デフォルトの名無しさん
15/10/22 17:25:22.18 YiIFkN4t.net
例えばPointを選択してF12を押したら
Pointが使われている定義がズラ~っと出てきますが
…public static bool operator !=(Point left, Point right) とか見て
『アンタ、何が言いたいん?』とかなりませんか?
(´・ω・`)
320:デフォルトの名無しさん
15/10/22 17:32:27.87 CeSwqlxw.net
定義に移動でソースが無いやつの話か、別にどうとも思わんけどなあ
あとCtrl+Shift+→ってなんだろ、Ctrl+Jの補完ならよく使う
321:デフォルトの名無しさん
15/10/22 17:33:20.51 CeSwqlxw.net
あーCtrl+Shift+↑↓か、使ったこと無いや
322:デフォルトの名無しさん
15/10/22 17:44:46.67 YiIFkN4t.net
もしかして切り取りやコピーしたい時、
マウスで選択してるの?
(´・ω・`)
323:デフォルトの名無しさん
15/10/22 17:49:06.91 YiIFkN4t.net
今まで書いたソースが突然のフリーズでムダにならないように
ひと息つくたびに無意識にCtrl+Sを押してる自分がいる
(´・ω・`)
324:デフォルトの名無しさん
15/10/22 18:04:16.53 W3MdSzAO.net
またしょうもないのが現れた
325:デフォルトの名無しさん
15/10/22 18:11:10.89 CeSwqlxw.net
Ctrl+クリックは素晴らしいよなw
どれだったかデフォルトじゃなくなってどうなることかと思ったが
復活してよかった
326:デフォルトの名無しさん
15/10/22 18:12:22.29 YiIFkN4t.net
眠いから寝ます
おやすみー
(´・ω・`) /
327:デフォルトの名無しさん
15/10/22 19:56:27.34 PAakFcEe.net
URLリンク(ideone.com)
これは正しく動くんですが
URLリンク(ideone.com)
これは動かない(DataContextのLevelに何を入れてもMin
328:imumの16になってしまう)原因に 心当たりありませんか?
329:デフォルトの名無しさん
15/10/22 20:51:13.05 Rb62oFdH.net
>>316
二度と来んなよ死ね
330:デフォルトの名無しさん
15/10/23 02:59:14.71 jTLyTzRn.net
Visual C# 2010 Express使ってるんですが、
"obj\x86\Release\○○.exe" を "bin\Release\○○.exe" にコピーできませんでした。
1000 ミリ秒以内に ○ 回目の再試行を開始します。別のプロセスで使用されているため、プロセスはファイル 'bin\Release\○○.exe' にアクセスできません。
というエラーが出て10秒程度待たされた末にエラーで起動できず、ということがたまに起こります。
この再試行をさせないようにしたいんですが、探しても設定方法が分からず、そもそも設定できるのかも分かりません…。
(エラーの原因は分かっているので問題ないです)
何か知っている方いたら教えてください。
331:デフォルトの名無しさん
15/10/23 03:06:18.87 ib+lLw74.net
変な質問だな。
なぜ原因の方を潰そうと思わないんだろう。
332:デフォルトの名無しさん
15/10/23 04:14:01.91 jTLyTzRn.net
>>320
すいません。原因はソースじゃないんです…。「デバック無しで開始」→で起動したものを閉じずにまた「デバック無しで開始」するとなります。
以前は再試行せずにすぐエラーが出たのでその状態に戻したいんです。
333:デフォルトの名無しさん
15/10/23 10:18:06.90 OmHxpJmN.net
>>321
プロセスが起動してんだからコピーできるわけねえじゃん
起動したものを閉じろよ
334:デフォルトの名無しさん
15/10/23 13:03:06.16 7JhC24+l.net
>>321
別プロセスで起動するように設定したらいいよ
335:デフォルトの名無しさん
15/10/23 16:56:02.41 msJBe+Ht.net
名前付きコンストラクタとか、コンストラクタの分割(見やすくする&読み取り専用変数を使うため)とか出来たらいいのにな…
336:デフォルトの名無しさん
15/10/23 19:18:21.29 wuEBiUeZ.net
>>319
デバッグで中断した時に他のスレッドが終了していないと起こるようだ
VS再起動で何とかなる
337:デフォルトの名無しさん
15/10/23 20:16:38.76 IJyMkb2B.net
PCに複数のIPアドレス(10個くらい)を持たせて、それぞれのIP宛にくるTCP通信を処理するサーバープログラム作ろうと思ってますが、
あらかじめネットワーク設定のIP設定画面からIPアドレスを追加しておくのではなく、
プログラムだけでIP追加&待ち受けするにはどうすればよいでしょうか?
338:デフォルトの名無しさん
15/10/23 20:55:00.47 1FmkefyV.net
netshで設定したら~?
C#は全く関係ないけど
339:デフォルトの名無しさん
15/10/23 21:01:51.88 8ibK1VGy.net
>>326
LANのデバイス10個いるけどどうすんの?
340:デフォルトの名無しさん
15/10/23 21:16:41.70 1FmkefyV.net
え、NIC一つに複数のIP設定できるでしょ
なんで10枚もいるのよ
341:デフォルトの名無しさん
15/10/24 00:31:26.01 sBU6HpCF.net
c++dll用ラッパーを自動で作るソフトとかない?
342:デフォルトの名無しさん
15/10/24 03:32:42.96 7oDBCbbL.net
>>326
P/InvokeでIPHLPAPI(IP Helper API)かな。
343:デフォルトの名無しさん
15/10/24 11:48:09.25 /s9N4mON.net
>>330
常識で考えろ
そんなものは作れない
344:デフォルトの名無しさん
15/10/24 15:35:39.62 ucvxMtnw.net
>>319なんですが、質問したかったのは「再試行」をせずにすぐエラーを出すように出来ないかってことなんです。
再試行している間はメッセージも出ず、ひたすら待たされるので、「起動に時間掛かってるのかな?」と思ったら、前のプロセスの終了し忘れだったということがあって…。
変な質問で混乱させてすいません。答えてくれてありがとうございました。
345:デフォルトの名無しさん
15/10/24 17:13:10.08 dOGyJCjw.net
>>333
そりゃだって、前のプロセス終了待ちするんだから仕方がない。同時起動しない設定にすればいい
346:デフォルトの名無しさん
15/10/24 19:00:51.29 t+kkgTrx.net
回答する奴がどいつもこいつも話聞かない奴で質問者が可哀想になるわw
347:デフォルトの名無しさん
15/10/24 22:09:38.29 oCqnp8jj.net
数字のリスト 1,2,3,4などを
1 2 3 4のようにスペースで区切って表示したいです。
しかし、以下のようにやると語尾にごみが入ってしまいますよね?
皆さんはどうやってますか?
var s = "";
foreach(var item in list){
s += item + " ";
}
あと、このようなコードを打ったら0が得られました。
var e = list.GetEnumerator();
WriteLine(e.Current);
リストの一番目は0じゃないはずですが、どういう状態なんでしょうか?
348:デフォルトの名無しさん
15/10/24 22:12:13.35 oCqnp8jj.net
MoveNextで最初のインデックスに移っていないので例外が発生すると予想していたんですが
349:デフォルトの名無しさん
15/10/24 22:22:56.92 bQKppvzE.net
>>336
String.Join
350:デフォルトの名無しさん
15/10/24 22:33:06.87 fd/dB9hc.net
>>337
MSDN読め
URLリンク(msdn.microsoft.com)
後、ソースも
URLリンク(referencesource.microsoft.com)
Currentの初期値はdefault(T)になってる
351:デフォルトの名無しさん
15/10/24 23:13:30.57 oCqnp8jj.net
>>338
ありがとうございます。.netはなんでもありますね
>>339
default(T)になっているのはなぜですか?
currentが呼び出されてそこからindexの値を取りに行くのは駄目なんでしょうか?
ソースは時間があるときに読みます。
352:デフォルトの名無しさん
15/10/24 23:22:00.56 fd/dB9hc.net
MSDN読めって書いてるのが見えないの?
353:デフォルトの名無しさん
15/10/24 23:37:22.93 oCqnp8jj.net
>>400
よくわかりません。
MoveNextをするまではプロパティは未定義ですとなっていますが、
実際に値を返していますよね。
そもそも定義・未定義という記述の意味が分かりません。
で、default(T)になっているのはパフォーマンスのためらしいですが、
今内部ソースを読む時間がないし、面倒くさいのでdefault(T)でどうパフォーマンスに影響があるのか伺っている次第です。
354:デフォルトの名無しさん
15/10/24 23:45:14.81 wB/X7nCW.net
プログラミングもめんどくさがって死ねよチンカス
355:デフォルトの名無しさん
15/10/24 23:48:11.15 udZsPmmZ.net
何を返すか保証しないって意味でしょ
難しく考え過ぎじゃないか?
356:デフォルトの名無しさん
15/10/24 23:58:43.72 fd/dB9hc.net
Curretに境界値チェックして例外投げる実装入れるとパフォーマンスがわずかだけど落ちるだろ
それだけ
この実装が嫌ならオレオレEnumerator作ればいい
357:デフォルトの名無しさん
15/10/25 01:57:46.12 fsyBfEYm.net
未定義というのは将来実装が変わって返す値が変わっても文句言うなよって意味
358:デフォルトの名無しさん
15/10/25 02:17:51.08 KpFhvh+K.net
ありがとうございます。
あまり気にしないことにします。
359:デフォルトの名無しさん
15/10/25 02:38:41.48 c+xpZEB0.net
ふぅ、ここの回答者頭おかしいし、あちらこちらで暴れているマイクロソフトの工作員も頭おかしいし
どこもかしこもマイクロソフト関連は気持ち悪くなった
360:デフォルトの名無しさん
15/10/25 06:55:51.12 UpnA5iMK.net
やべえぞそれ
黄色い自動車に乗ったほうがいい
361:デフォルトの名無しさん
15/10/25 13:05:53.83 XGM/2Enx.net
>>348
じゃあ見るなよ
362:デフォルトの名無しさん
15/10/25 13:35:20.53 xV04ZCve.net
飛び火させて申し訳ないけどApplepファンボーイほどではない
363:デフォルトの名無しさん
15/10/25 16:37:16.14 hQyThWO7.net
SQL Server のLocalDbを使っていたPCが壊れて
dbだけは
364:バックアップしてあったので それを新調したPCで読むことはできますか? dbを作ったPCじゃないと読めないんでしょうか?
365:デフォルトの名無しさん
15/10/25 16:50:28.68 Q9+fT7GM.net
どういうバックアップ?
そもそもバックアップてtそういう時のためにあるようなもんだろ
366:デフォルトの名無しさん
15/10/25 16:55:40.90 c+xpZEB0.net
>>350
お前みたいなのが居なくなるだけですげぇスレの空気が良くなるよ
367:デフォルトの名無しさん
15/10/25 16:58:41.53 PVPHq6NE.net
Unityのコルーチン(グリーンスレッド)ってアトミックな処理によるスイッチングは発生しますか?
368:デフォルトの名無しさん
15/10/25 17:52:19.14 xV04ZCve.net
コルーチンはスレッドと何の関係もないですよ
何か変な文献でも読んだんですか?
369:デフォルトの名無しさん
15/10/25 18:02:49.45 MN19GUGi.net
>>348 みたいなレスしてる奴が何言ってるんだか w
370:デフォルトの名無しさん
15/10/25 21:16:15.50 0CUh0fF8.net
たぶん他の奴に言われてくやしかったから自分も使ってみたかった言葉なんだろ
使いどころ間違えて自爆してるけど
371:デフォルトの名無しさん
15/10/25 23:23:12.66 hQyThWO7.net
>>353
エクスプローラでコピーした場合です
372:デフォルトの名無しさん
15/10/25 23:41:15.34 RC9wdhkQ.net
個人レベルの制作だとオブジェクト指向のメリットって
カプセル<多様性だな
カプセル化意識し過ぎると処理速度(特にゲーム)とかが酷くなる
373:デフォルトの名無しさん
15/10/26 00:36:32.71 qJuY+u/q.net
多態性?
374:デフォルトの名無しさん
15/10/26 00:42:27.84 0a7DJh5E.net
あれ、多態性だったのか
多様性と思ってた
375:デフォルトの名無しさん
15/10/26 00:47:33.11 pea7EB//.net
そんなレベルでカプセル化すると遅くなるとか言われてもな
多分まともに動くものを作り上げたことがないんだろう
376:デフォルトの名無しさん
15/10/26 01:13:26.64 jSFkYHTf.net
問題の分析もできないだろうし
ベンチすら見ないで物言ってそうな空気
377:デフォルトの名無しさん
15/10/26 03:25:47.91 vCh8HvqX.net
ゲームとか複雑にオブジェクトが絡むものはオブジェクトに仕事させないで、関数ベースの方がスムーズにいくな。
エンジンにもよるが副作用がいつ起きるか把握できん。
378:デフォルトの名無しさん
15/10/26 07:47:01.63 7G3hAEBt.net
関数ベースで大量のフィールドとフラグでいつ副作用が起こるか分からないようなものを作っているわけですね
379:デフォルトの名無しさん
15/10/26 08:17:31.68 C98YS4z/.net
int x = 1;やx = a+b;みたいな普通の代入式も破壊的代入と呼びますか?
380:デフォルトの名無しさん
15/10/26 16:05:25.14 ewlzRHbI.net
非同期のタスクを途中で止めたいのですが
この場合tokenはInterruptMethod内でどのように記述すればよいですか?
~~~
if(_tokenSource == null) _tokenSource = new CancellationTokenSource();
var token = _tokenSource.Token;
await Task.Run(()=>InterruptMethod(), token).ContinueWith(t => {
_tokenSource.Dispose();
_tokenSource = null;
});
~~(略)~~
private void InterruptMethod()
{
}
381:デフォルトの名無しさん
15/10/26 16:18:23.55 0a7DJh5E.net
>>363
配列をcloneして渡したりしてたら時間かからない?メモリ的にも不利だし
382:デフォルトの名無しさん
15/10/26 16:24:50.69 SRHIhdAJ.net
>>368
Task.Run(()=>InterruptMethod(token), token).以外略;
private void InterruptMethod(CancellationToken token) {
}
やはり多態と多様を間違って覚えていた人の発言は一味違う
木を見てなんとやら
383:デフォルトの名無しさん
15/10/26 17:01:46.79 pea7EB//.net
>>369
ReadOnlyCollectionでも使え
384:デフォルトの名無しさん
15/10/26 17:08:48.73 AGAQ9bh1.net
>>359
インポートできないかな、ってC#関係ないな
385:デフォルトの名無しさん
15/10/26 17:23:46.84 0a7DJh5E.net
>>371
凄い
こんなのあったのか
386:デフォルトの名無しさん
15/10/26 19:09:46.32 F0ZP2A+2.net
2.0の時代から普通にあるよねw
387:デフォルトの名無しさん
15/10/26 19:42:21.44 7G3hAEBt.net
コレクションを外部に公開したいときによく使う
388:デフォルトの名無しさん
15/10/26 19:42:28.57 SRHIhdAJ.net
2006年頃の世界から書き込んでるんじゃないの
389:デフォルトの名無しさん
15/10/27 00:16:23.97 8C7djFoA.net
え?
390:デフォルトの名無しさん
15/10/27 06:35:15.42 vxRkO0y7.net
/// <summary>
/// ビットマップ(Bitmap)を回転する
/// </summary>
/// <param name="bmp">ビットマップ</param>
/// <param name="angle">回転角度</param>
/// <param name="x">中心点X</param>
/// <param name="y">中心点Y</param>
/// <returns></returns>
public Bitmap RotateBitmap(Bitmap bmp, float angle, int x, int y)
{
Bitmap bmp2 = new Bitmap((int)bmp.Width, (int)bmp.Height);
Graphics g = Graphics.FromImage(bmp2);
g.Clear(Color.Black);
g.TranslateTransform(-x, -y);
g.RotateTransform(angle, System.Drawing.Drawing2D.MatrixOrder.Append);
g.TranslateTransform(x, y, System.Drawing.Drawing2D.MatrixOrder.Append);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear;
g.DrawImageUnscaled(bmp, 0, 0);
g.Dispose();
return bmp2;
}
このコード少し中心がずれてさらになぜか1.2倍ぐらい拡大されてるんですが、いったいどうなってるんですか?
致命的なバグでもあるんでしょうか
391:デフォルトの名無しさん
15/10/27 07:31:28.81 AF18ul7Z.net
DrawImageUnscaledは5cmの画像を5cmで表示するメソッドだ
おそらくお前が期待しているものとは違う
普通にDrawImage使えばいい
関係ないけどDisposeなんか書くなusing使え
392:デフォルトの名無しさん
15/10/27 13:03:01.43 nTHAaiUE.net
また命令口調バカか
393:デフォルトの名無しさん
15/10/27 13:29:17.45 LyVSHq6d.net
また命令口調指摘厨か
394:デフォルトの名無しさん
15/10/27 13:43:42.84 oZ3zd0d4.net
テンプレートから外れたレスをするのをやめてください
「命令口調君って馬鹿だな」
です
正しくレスしましょうね
395:デフォルトの名無しさん
15/10/27 14:19:38.50 gDs0OAHt.net
Windowsフォームアプリケーションを使うとき
コンストラクタとLoadイベントと
usingとDisposeって
皆さんはどちらを使っているんですか?
396:デフォルトの名無しさん
15/10/27 14:24:46.83 g1+/LNmd.net
unity使ってたらバカにされるらしいけど
ここの人たちは自分でunityから作るような人たちなの?
397:デフォルトの名無しさん
15/10/27 15:10:56.72 oZ3zd0d4.net
はぁ?なに?被害妄想?
質問する前に病院行って問診してもらえよ
398:デフォルトの名無しさん
15/10/27 15:16:17.66 LyVSHq6d.net
>>383
コンストラクタとLoad/OnLoadは用途が別でしょ
>>382
命令口調君って馬鹿だな、まで読んだ
じゃなかったっけか
399:デフォルトの名無しさん
15/10/27 15:42:59.19 sDzKh5al.net
ウィンドウが生成される前にやれることならコンストラクタ。
ウィンドウが生成された後じゃないとやれないならLoadイベントなりOnLoadをオーバーライドしたりで。
usingが使える場面は、原則using。
適材適所で使えばいい。
400:デフォルトの名無しさん
15/10/27 16:09:37.28 scBMsQMX.net
なるほど分かりました
401:デフォルトの名無しさん
15/10/27 16:11:53.68 scBMsQMX.net
あれ?ID変わった
>>388は>>383です
402:デフォルトの名無しさん
15/10/27 17:27:59.94 vxRkO0y7.net
>>379
thx
403:デフォルトの名無しさん
15/10/28 04:40:41.67 wj9WG103.net
地震警報アプリを作りたいんですが
どうやって作ったらいいの?
(´・ω・`)
404:デフォルトの名無しさん
15/10/28 06:39:54.32 1FF+1WKV.net
Managerって名称をクラスに付けるな死ねって言われたんですが
やっぱり付けるとマズいですか?(WindowManagerとかViewManagerとか)
Manage(管理)って言われても具体的に何を、ど�
405:フような機能を管理してるのか分からないって言われました
406:デフォルトの名無しさん
15/10/28 07:21:56.07 8s7NCB3J.net
>>391
緊急地震速報は気象庁に問い合わせないとダメ
予報だからいい加減なソース使うと捕まるよ
>>392
その通り
407:デフォルトの名無しさん
15/10/28 08:37:02.75 UYNcQBr4.net
うん、プロジェクトマネージャーとか意味が分からんよな。
もっと具体的な名称にしてもらいたい