- 1 名前:デフォルトの名無しさん mailto:sage [2012/09/06(木) 23:11:33.73 ]
- 前スレ
C#, C♯, C#相談室 Part74 toro.2ch.net/test/read.cgi/tech/1342241550/ Visual Studio 2010 Express www.microsoft.com/japan/msdn/vstudio/express/default.aspx Visual Studio 2012 Express www.microsoft.com/visualstudio/11/ja-jp/products/express
- 89 名前:デフォルトの名無しさん mailto:sage [2012/09/09(日) 19:12:16.68 ]
- >>88
そうもいかないからそこを何とか(T_T)
- 90 名前:デフォルトの名無しさん mailto:sage [2012/09/09(日) 20:25:03.75 ]
- >>89
そのリンク先だけ貼っとくよ どんなもんか知らんから責任は持てないよ www.codeproject.com/Articles/19560/Launching-Your-Application-After-Install-using-Vis#xx2764325xx
- 91 名前:デフォルトの名無しさん [2012/09/09(日) 20:51:32.03 ]
- Gilma
をFW4.0をインストールした環境で使用しようとしているのですが .NET Framework version 1.1.4322. という昔のバージョンにしか使えないのでしょうか?
- 92 名前:デフォルトの名無しさん mailto:sage [2012/09/09(日) 21:36:41.35 ]
- インストーラーは弾かれてもzip版は使えるんじゃないの?
- 93 名前:デフォルトの名無しさん mailto:sage [2012/09/09(日) 21:43:18.90 ]
- そんな微妙なもん使うくらいだったら
リソースにdllそのまま全部突っ込んどいてAssembly.Loadでよくね
- 94 名前:デフォルトの名無しさん [2012/09/09(日) 21:57:30.97 ]
- >>92
試してみます。 >>93 ???そんな方法があるんですか?
- 95 名前:デフォルトの名無しさん mailto:sage [2012/09/09(日) 23:11:55.44 ]
- .NETってロギングツール普及してないのね
検索してもlog4net以外はヒットしないや
- 96 名前:デフォルトの名無しさん mailto:sage [2012/09/09(日) 23:12:51.97 ]
- TraceSourceでも使ってろ
- 97 名前:デフォルトの名無しさん [2012/09/09(日) 23:20:38.95 ]
- log4net 使ってるプロジェクトあったな。
生産性を邪魔する糞ツールだった。
- 98 名前:デフォルトの名無しさん mailto:sage [2012/09/10(月) 01:02:19.08 ]
- すれ違いだが
thinker-japan.com/thinkwar.html 面白かった。戦争って全て仕組まれてたんだね。
- 99 名前:デフォルトの名無しさん mailto:sage [2012/09/10(月) 01:09:43.08 ]
- ログインログアウトツール?
- 100 名前:デフォルトの名無しさん [2012/09/10(月) 10:10:33.01 ]
- ふらっとVisual C#,C♯,C#(初心者用) Part96
toro.2ch.net/test/read.cgi/tech/1344151764/
- 101 名前:デフォルトの名無しさん mailto:sage [2012/09/10(月) 17:34:17.61 ]
- Interface の明示的実装と Generic について質問です。
Interface を返すメソッドを明示的実装によって その Interface を実装する構造体を返すように定義したとします。 Interface の型にボクシングされないようにその機能を使いたいのですが、 以下の認識で合っていますか ? List<T>.Enumerator が構造体なので、 Run(Enumerable.Range(0, 10).ToList(), action) というようにそれぞれ実行したとします。 action 内ではボクシングは無いものとします。 // 1. ボクシングされない例 void Run<T>(List<T> list, Action<T> action) { foreach (var i in list) action(i); } // 2. ボクシングされる例 void Run<T>(IEnumerable<T> list, Action<T> action) { foreach (var i in list) action(i); } // 3. ボクシングされる例 ? void Run<TList, TItem>(TList list, Action<TItem> action) where TList : IEnumerable<TItem> { foreach (var i in list) action(i); } 最後の Run は List<T> が構造体ではないため Generic が特殊化されず、 IEnumerator<TItem> にボクシングされてしまうと考えました。 List<T> を構造体でラップしたような型を引数にした場合は特殊化され、ボクシングの起きないコートになるのでしょうか ?
- 102 名前:デフォルトの名無しさん mailto:sage [2012/09/10(月) 17:48:25.85 ]
- コンテナがstructかどうかは関係ない
1〜3にボクシングされる(Tの値を参照型に代入する)箇所は見当たらない
- 103 名前:デフォルトの名無しさん mailto:sage [2012/09/10(月) 21:19:14.99 ]
- なるほど。 2 の場合もですか。驚きです。
2 の場合、型情報が IEnumerable<T> に落とされている為、 IEnumerable<T>.GetEnumerator() が呼び出され、 IEnumerator<T> にボクシングされると思ったのですが、 違うのですね。 何故違うのかが理解できません。 本来、以下のどれが正しいのでしょうか ? a. Generic は型パラメータが値型の場合のみ特殊化されるのではなく、そもそも共通部分をまとめているだけ (参照型はほぼ共通のコードが使用出来る) b. Generic に限らず Interface 型 (参照型) を引数に取っていても、a のように処理される。 c. 特殊化という考え自体が間違いで、見当はずれ
- 104 名前:デフォルトの名無しさん mailto:sage [2012/09/10(月) 21:40:12.36 ]
- >>103
答. ジェネリックは常に特殊化される(と考えてよい) 実際の実装は、 ・値型の場合…JITが本当に特殊化する ・参照型の場合…共通のコードを使い回す なんだけど、プログラマから見ると常に特殊化されているのと 全く区別できない動作をするから気にしなくていい。
- 105 名前:デフォルトの名無しさん mailto:sage [2012/09/10(月) 21:50:36.98 ]
- つまり、2 番が特殊化されるのはジェネリックを使用しているからですか ?
List<int>, IEnumerable<int> ではなく、IntList, IIntEnumerable を自分で作り、 2 と同様のことを行った場合は特殊化されないのでしょうか ?
- 106 名前:デフォルトの名無しさん mailto:sage [2012/09/10(月) 21:53:11.79 ]
- >>101
2,3の場合はボックス化されるよ 仰る通り、IEnumerable<T>.GetEnumeratorがボックス化されたList<T>.Enumeratorを返す。 1の場合、IEnumerable<T>.GetEnumeratorではなく構造体をそのまま返す方のGetEnumeratorが呼び出されるから ボックス化が起きない。 C#のforeachがインターフェイスによらずGetEnumeratorという名前のメソッドを呼ぶのは あくまでC#のコンパイル時に解決できる場合の話で、 JITによる実行時の特殊化は関係ない。
- 107 名前:デフォルトの名無しさん mailto:sage [2012/09/10(月) 22:07:19.07 ]
- どっちなんだ。。。
あっていたのかな ? >>106 では、3 の TList が where TList : struct, IEnumerable<TItem> な型 StructList<T> の場合はどうなるのでしょうか ? A. StructList<T>.GetEnumerator() は IEnumerator<TItem> にボクシングされる B. 特殊化されるため、StructList<T>.Enumerator が使用され、ボクシングは起きない と、ここまで書きましたが、特殊化は JIT 時にされるのですか。。 つまり、ダックタイピング的に行われるものではなく、静的型検査はされる、ということですかね ? なら A が正解ということですか ?
- 108 名前:デフォルトの名無しさん mailto:sage [2012/09/10(月) 22:07:27.00 ]
- インターフェイスで渡した場合もボックス化が起きないようにしたいならこうなる
struct ValueEnumerator<out T> : IEnumerator<T> { /*好きなように実装しろ*/ } interface IValueEnumerable<out T> { ValueEnumerator<T> GetEnumerator(); } これでボックス化なしでforeachが使えるはずだが、ValueEnumerator<out T>を実装するのが難しいだろうな
- 109 名前:デフォルトの名無しさん mailto:sage [2012/09/10(月) 22:12:01.24 ]
- >>107
その通り ダックタイピング的なバインディングはC#言語固有のもので、実行時には行われない ちなみにdynamic使うと実行時にもC#固有のバインディング動作になるよ dynamic使うとどっちみちボックス化されてしまうけど
- 110 名前:デフォルトの名無しさん mailto:sage [2012/09/10(月) 22:18:55.14 ]
- おい!お前ら何話しているんだよ
俺にわかるように日本語でしゃべれ!
- 111 名前:101 mailto:sage [2012/09/10(月) 22:22:28.56 ]
- >>107
最後から 2 行目の静的型検査は、静的型付けの間違いした。 言いたいことは伝わったとは思いますが、一応。 >>108 なるほど。 ボクシングしないような Interface を設ければ確かにボクシングはされませんね。 ですが例とは違い、参照型と値型で同じコードを使いたかったので、今回はその方法は使えません。 >>109 つまり、dynamic を使えば、StructList<T>.Enumerator が使用される、ということですか ?
- 112 名前:デフォルトの名無しさん mailto:sage [2012/09/10(月) 22:27:01.02 ]
- >>110
前提 ・foreachの仕様はダックタイピング的であるといわれる。なぜか。 ・上に関連して、List<T>.Enumeratorがなぜpublic structなのか説明せよ ・.NETにおけるジェネリックの特殊化とはどういうものか説明せよ これらに回答できるようになって出直してきなさい
- 113 名前:デフォルトの名無しさん mailto:sage [2012/09/10(月) 22:28:27.25 ]
- ボクシングなんかしたら怪我しちゃうだろ
- 114 名前:デフォルトの名無しさん mailto:sage [2012/09/10(月) 22:36:08.19 ]
- おいおっさん
- 115 名前:デフォルトの名無しさん mailto:sage [2012/09/10(月) 22:37:10.04 ]
- 以下のように、ある任意(IXmlSerializableを実装していないPOCO的な)のオブジェクトをXDocumentを利用してシリアライズ/デシリアライズをしようと思っています。
対象のクラス class Foo { int PropInt { get; set; } Bar PropBar { get; set; } } class Bar { string PropString { get; set; } } 期待するXML <Foo> <PropInt>0</PropInt> <PropBar> <PropString>0</PropString> </PropBar> </Foo> 現在はFooクラスからPropertyInfoを取得し、PropertyInfo.NameとPropertyInfo.GetValue(foo, null)からXElementを生成しています。 プロパティがstringやintなどの基本的な型であれば問題なくできるのですが型が複合型の場合は以下のようにその複合型の名前が値として出力されます。 <PropBar>Bar</PropBar> 理由は理解できるので複合型の場合は再帰的にXElementを生成したいのですが、どのようにしたらよいかわかりません。 XEelementがシリアライズ可能なプロパティ(intやstring等)かどうかを判断する方法があれば、再帰処理が可能かと思いますが判断する方法が見つかりません。
- 116 名前:101 mailto:sage [2012/09/10(月) 22:37:50.49 ]
- >>111 の最後でアホなことを聞いてしまいました。
すいません。 >>102, >>104, >>106, >>108, >>109 お陰様で、理解できました。 ありがとうございます。
- 117 名前:デフォルトの名無しさん mailto:sage [2012/09/10(月) 22:38:20.13 ]
- >>112
それが答えられるようになるとすごいの?
- 118 名前:デフォルトの名無しさん mailto:sage [2012/09/10(月) 22:43:27.04 ]
- >>115
どこまで汎用性持たせるかって話になるけど。 例えば、XElementからのキャスト演算子オーバーロードが定義されてるかどうかで判断するとか。
- 119 名前:デフォルトの名無しさん mailto:sage [2012/09/10(月) 22:50:39.25 ]
- 文字列との相互変換をTypeConverter.ConvertToString/ConvertFromStringに任せるなら
TypeConverter.CanConvertTo/CanConvertFromとか
- 120 名前:デフォルトの名無しさん mailto:sage [2012/09/10(月) 22:53:50.68 ]
- >>115だったらXmlSerializerで一発でしょ
IXmlSerializable不要 いちいちPropertyInfoとか型判定とかやってたらクソ遅いよ
- 121 名前:デフォルトの名無しさん mailto:sage [2012/09/10(月) 23:03:23.07 ]
- つ
static XElement Serialize(object obj) { var serializer = new XmlSerializer(typeof(Foo)); using (var writer = new StringWriter()) { serializer.Serialize(writer, obj); return XElement.Parse(writer.ToString()); } } 自前でこれを超えるものを作るのは相当大変だよ 汎用性は比べ物にならないし速度も普通にやってたら全く勝ち目無い
- 122 名前:デフォルトの名無しさん mailto:sage [2012/09/11(火) 00:07:15.37 ]
- 今現在はみなさんがおっしゃる通りXmlSerializerを使用しています。
今後の追加の要件として、プロパティ毎に保存するファイルを振り分けたいと考えていて、 プロパティにパスを指定できる属性を付与しました。 その為、XmlSerializerを使うことができなくなってしまったのです。 シリアライズ/デシアライズはそれぞれ1回しか処理が走らないため 多少の速度は目を瞑ることができます。 また、ほかに解決案があれば他の方法でも構わなく、XElementに拘っているわけではありません。 他に思いつかなかったのです。 >>118 オーバーロードの情報はどのようにして取得するのでしょうか。 型情報まで取得できますでしょうか。
- 123 名前:デフォルトの名無しさん mailto:sage [2012/09/11(火) 00:10:23.73 ]
- >>121でいったんXElementにしてしまえば
後はどうにでもできるだろ
- 124 名前:デフォルトの名無しさん mailto:sage [2012/09/11(火) 00:14:04.27 ]
- XElementにしてしまえばあとはLINQ to XMLで保存先パスの属性を検索して
振り分けて保存するなんて楽勝ですよ
- 125 名前:デフォルトの名無しさん mailto:sage [2012/09/11(火) 00:47:13.13 ]
- 確かにその通りでした。
シリアライズはXmlSerializeを使ってそこからXElementに落とし込めばよいのですね。 こういうのが思いつかないのがとても悔しいというか悲しい。 ちなみに>>124さんのいう「LINQ to XMLで保存先パスの属性を検索」 というのはプロパティはLINQで検索して属性はTypeから取得する、でよいでしょうか。 それともLINQ to XMLで一緒にとってこれるのでしょうか。
- 126 名前:デフォルトの名無しさん mailto:sage [2012/09/11(火) 00:56:18.80 ]
- もうひとつ質問させてください。
Visual StudioのスニペットのXMLのように改行やスペースの入ったタグを利用したいと考えた場合、 どのようにしてシリアライズしたらよいでしょうか。 スニペットのようにXMLにそのまま改行を表現できるものであればそのままシリアライズしたいと考えています。
- 127 名前:デフォルトの名無しさん mailto:sage [2012/09/11(火) 01:08:26.48 ]
- 改行コード書けばいいだけだろうが!
- 128 名前:デフォルトの名無しさん mailto:sage [2012/09/11(火) 01:11:30.58 ]
- 自分がやったときは、改行とスペースがなぜか消えてしまったので仕様かと思いました。
明日、出社したら再度試してみます。 すいません。
- 129 名前:デフォルトの名無しさん mailto:sage [2012/09/11(火) 01:13:25.23 ]
- 改行入った文字列をシリアライズすればいいだけじゃん
- 130 名前:デフォルトの名無しさん mailto:sage [2012/09/11(火) 01:42:34.16 ]
- オブジェクト(or型)ごとにパス持たせて振り分けるならわかるが
プロパティごとってどうやるつもりなんだ? 素直にやったらどのオブジェクトのプロパティかわからなくなるだろ
- 131 名前:デフォルトの名無しさん mailto:sage [2012/09/11(火) 01:44:43.14 ]
- 言っている意味がさっぱりわからん
public string hoge{get;set;} これに改行した文字列入れればいいじゃんってことなんだけど プロパティ名で管理されてるじゃん
- 132 名前:デフォルトの名無しさん mailto:sage [2012/09/11(火) 07:57:59.53 ]
- 片山さつき「修学旅行の行き先を韓国に選ぶ学校ですが、土下座旅行に近い事が判明しました」
engawa.2ch.net/test/read.cgi/poverty/1347252281/ 片山氏が調査を進めると、韓国への修学旅行での訪問先に、信じがたい場所が選ばれていることが分かった。 日本海側の私立高校K(男女共学)が、今月末に予定していた韓国修養会(修学旅行)のレジュメによると、 訪問先に「戦争と女性の人権博物館」や「ナヌムの家/日本軍『慰安婦』歴史館」とあり、 説明に「日本軍性奴隷(日本軍慰安婦)とされた人々の苦悩の深さと日本軍の扱いの実態を知ることができる」 と書かれていたのである。 片山氏は「これはひどい。日本政府が発見した資料からは(慰安婦に)軍や官憲の強制連行を示す 証拠がなかったことは閣議決定されている。 教育の一環である修学旅行で、日本政府が『事実と違う』と抗議していることを学ばせようと していたのではないか。『教育の自主性』では許容できない。 国益に反する洗脳教育が行われる危険がある」と語った。 私立高校Kは6日、保護者などの強い抗議を受けて、修学旅行先を韓国から国内に変更することを発表した。 同校が予定していた訪問先には、「西大門刑務所歴史館」や「安重根義士記念館」など、 日本や日本人に敵意や憎悪を植え付けるような場所も並んでいた。 片山氏は「K校だけとは思えない。インターネットを見ると、似たような修学旅行をしている学校がありそうだ。 背後に、国内の『反日組織』が関与している疑いもある。早急に実態を調べたい」と語っている。 www.zakzak.co.jp/society/politics/news/20120910/plt1209101131001-n1.htm
- 133 名前:デフォルトの名無しさん mailto:sage [2012/09/11(火) 09:18:00.74 ]
- XmlSerializerはよく使われているみたいだけどWinMDではなくなるんだよな
マイクロソフトにとってはレガシーってことじゃないの?
- 134 名前:デフォルトの名無しさん mailto:sage [2012/09/11(火) 09:18:32.83 ]
- レガシー・・・マイファースト
- 135 名前:デフォルトの名無しさん mailto:sage [2012/09/11(火) 10:02:21.50 ]
- >>133
MF系を除いて、XmlSerializerが削られた.NETは今のところ無い msdn.microsoft.com/en-us/library/windows/apps/system.xml.serialization.xmlserializer.aspx .NETのユーティリティ的な機能の中でこれほど大事にされてるものも珍しいと思う レガシーも糞も、WCF系とは全く役割が違うし
- 136 名前:デフォルトの名無しさん mailto:sage [2012/09/11(火) 10:55:20.19 ]
- >>135
ありがとさん www.atmarkit.co.jp/fdotnet/chushin/win8appdev_01/win8appdev_01_04.html に書いてあることは嘘ってことか
- 137 名前:デフォルトの名無しさん mailto:sage [2012/09/11(火) 11:05:04.90 ]
- LINQ to XMLの利用で代替とか言ってるからXML DOMと間違えてるんじゃないの
デスクトップ版と比べた差は大まかに以下の通り、で非ジェネリックコレクションと XmlSerializerだけ挙げてるってちょっと酷いなw コレクションの方はともかく、XmlSerializer(嘘だけど)みたいなちょっとしたユーティリティなんかより 挙げるべき重大な変更点はいくらでもあると思う。 まともに.NET使ったことないんじゃないのこの人
- 138 名前:デフォルトの名無しさん mailto:sage [2012/09/11(火) 21:06:22.78 ]
- >>135
WCF系がXmlSerializerと役割が違うとは言い切れないのではないだろうか。 少なくともオブジェクト永続化という役割はかぶる。 DataContractSerializerはIXmlSerializableとSerialzableAttributeにも 対応しておりXmlSerializerの上位版といえる。標準では出力するXMLが汚いが 名前空間を空にすればXmlSerializerとほぼ同じ出力。加えてIDictionaryや 循環参照も扱うことができネットワークサービスにも対応しやすい。
- 139 名前:デフォルトの名無しさん mailto:sage [2012/09/11(火) 21:13:11.93 ]
- >>138に追加
逆にXmlSerializerにしかできないことは順序制御と要素名マッピングしか知らない。 しかしこれが有効な場面は多くないだろうからDataContractSerializerは XmlSerializerを置き換えるといっても問題ないのではないだろうか。意見を求む。
- 140 名前:デフォルトの名無しさん mailto:sage [2012/09/11(火) 22:20:40.54 ]
- 1つの*.csファイルに複数のクラスを書くの普通ですか?
javaだとあまりやらないと思うのですが、C++と同じ流派?
- 141 名前:デフォルトの名無しさん mailto:sage [2012/09/11(火) 22:33:36.90 ]
- >>138
DataContractは細かい制御がほとんどできないので、 XMLのスキーマが予め決まってる場合全く役に立たない XmlSerializerはシリアライザというよりオブジェクト-XMLマッピングと考える方がいいと思う
- 142 名前:デフォルトの名無しさん mailto:sage [2012/09/11(火) 22:45:58.92 ]
- >>140
Javaは一つのファイルにpublicクラスを一つしか置けないとか 1ファイル1パッケージとかわけのわからん制限があるが C#では論理構造とファイルシステムを完全に分けて考えるので特に決まりはない でも基本は1ファイル1クラス。MSのコード検査ツールを使うと一ファイルに複数の クラスがあると警告が出たりする。 >>138 XmlSerializerはまずXMLありきなんだよ。こういうXMLを生成したい、こういうXMLを読みたい、というのが先。 .NET付属のxsd.exeを使って、XMLを読み書きするための型をスキーマから自動生成したりすることもできる。
- 143 名前:デフォルトの名無しさん mailto:sage [2012/09/11(火) 22:56:36.89 ]
- >>141
そういう用途は今はXElement+LINQじゃね?
- 144 名前:デフォルトの名無しさん mailto:sage [2012/09/11(火) 22:59:03.52 ]
- >>143
型付きの方が便利な場合もあるだろう
- 145 名前:デフォルトの名無しさん mailto:sage [2012/09/11(火) 23:00:50.77 ]
- それにXmlSerializerはXLINQで手書きするのとは違って
宣言的に読み書きできるというメリットもあるぞ
- 146 名前:デフォルトの名無しさん mailto:sage [2012/09/11(火) 23:18:16.41 ]
- >>115みたいな簡単な型はXmlSerializerでXML化して、単純にマッピングできないものは
IXmlSerializableを実装してその中でXElementを使うとか、 読むときもXElementで要素を検索してからXmlSerializerでデシリアライズするとか 柔軟に組み合わせるのが賢いと思うよ。 余計なコードを書かないで済むに越したことはない。
- 147 名前:デフォルトの名無しさん [2012/09/13(木) 00:41:30.01 ]
- SQLサーバーから取り出した検索結果をDatatableで取り出したとき、
その取り出した中身のデータ型は、SQLサーバーでの定義に依存しているんですか? つまりvarcharならstringになるとか
- 148 名前:デフォルトの名無しさん mailto:sage [2012/09/13(木) 02:54:03.95 ]
- >>147
msdn.microsoft.com/ja-jp/library/vstudio/cc716729
- 149 名前:デフォルトの名無しさん mailto:sage [2012/09/13(木) 08:10:13.68 ]
- >>148
ありがとうございました
- 150 名前:デフォルトの名無しさん [2012/09/13(木) 21:28:21.84 ]
- 20120913という文字列型の文字列を
│2012-09-13│ というフォーマットで出したいです String.Format("│yyyy-mm-dd│", "20120913") ではダメなんですが、どうすればいいのでしょうか・・・・
- 151 名前:デフォルトの名無しさん mailto:sage [2012/09/13(木) 21:32:30.72 ]
- >>150
var date = DateTime.ParseExact("20120913", "yyyyMMdd", CultureInfo.InvariantCulture); Console.WriteLine(date.ToString("| yyyy-MM-dd |", CultureInfo.InvariantCulture));
- 152 名前:デフォルトの名無しさん [2012/09/13(木) 22:02:08.90 ]
- >>150
そんなに手間がかかるのでしょうか・・・ 実は.NET2.0のためvarは使えませんが、他に何か方法はありませんか
- 153 名前:150 [2012/09/13(木) 22:02:28.70 ]
- >>151
アンカー間違えました
- 154 名前:デフォルトの名無しさん mailto:sage [2012/09/13(木) 22:06:42.37 ]
- >>152
varの代わりにDateTimeと書くだけ。他は2.0基準。 たかが2行だけだろ。
- 155 名前:デフォルトの名無しさん mailto:sage [2012/09/13(木) 22:07:16.29 ]
- StringBuilderに入れてInsert
Substringで繋ぐ お好きな方をどうぞ どっちも小奇麗ではない 小奇麗な方法がよければ青い鳥を探して言語を変えよう ここにはありませんのだ
- 156 名前:デフォルトの名無しさん mailto:sage [2012/09/13(木) 22:09:06.78 ]
- 手間ってどういうこっちゃ
ヘルパメソッドにでもすればいいだろ 毎回コピペとかすんなよ?
- 157 名前:デフォルトの名無しさん mailto:sage [2012/09/13(木) 22:12:04.27 ]
- >>151で手間とか言ってたら一体何ができるというのか
- 158 名前:150 [2012/09/13(木) 22:25:13.01 ]
- 皆さんありがとうございました
- 159 名前:デフォルトの名無しさん mailto:sage [2012/09/13(木) 22:25:28.91 ]
- スライスができる言語ならもう少しマシには書けるかもな
ま、ないものねだりという奴だな 汚いインターフェースが嫌なら自分でラッパーを書けと リーダブルコードには書いてあったな
- 160 名前:デフォルトの名無しさん mailto:sage [2012/09/13(木) 22:58:33.33 ]
- こうか
"|" + "20120913".Insert(6, "-").Insert(4, "-") + "|"
- 161 名前:150 [2012/09/13(木) 23:18:31.68 ]
- ありがとうございます
誰が書いてもすっきりと書けないなら、とりあえず安心です
- 162 名前:デフォルトの名無しさん [2012/09/14(金) 00:02:30.15 ]
- DataTable.Columns.Add("カラム名")として、データ型を省いた場合、その列にはObject型みたいな感じでなんでもはいるのですか?
- 163 名前:デフォルトの名無しさん mailto:sage [2012/09/14(金) 03:21:34.09 ]
- >>162
ここに質問するよりMSDNでも見て自分で調べた方が早いだろうに msdn.microsoft.com/ja-jp/library/52xzw8tf 既定では、新しい列の DataType は文字列になります。
|

|