!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
C#, C♯, C#相談室 Part94
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 935f-5Uxj)
2019/03/20(水) 18:57:36.47ID:ZZcTomnN02デフォルトの名無しさん (ワッチョイ b35f-5Uxj)
2019/03/20(水) 19:00:25.69ID:ZZcTomnN03デフォルトの名無しさん (ワッチョイ 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
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
4デフォルトの名無しさん (ワッチョイ b317-B/CD)
2019/03/20(水) 21:27:00.84ID:jN76oFxX0 >>1乙
5デフォルトの名無しさん (ワッチョイ b317-B/CD)
2019/03/20(水) 21:30:27.06ID:jN76oFxX06デフォルトの名無しさん (ワッチョイ 237d-KxX0)
2019/04/25(木) 12:02:26.84ID:4R4XZvlv0 C#でセレニウムにチャレンジしています。
Chromeを起動すると「Chromeは自動テスト ソフトウェアによって制御されています」と
メッセージが表示されてうざいです。
これを非表示にする方法はないでしょうか?
Chromeを起動すると「Chromeは自動テスト ソフトウェアによって制御されています」と
メッセージが表示されてうざいです。
これを非表示にする方法はないでしょうか?
7デフォルトの名無しさん (ワッチョイ ad17-KxX0)
2019/04/25(木) 19:25:05.43ID:AhYgPDY90 マルチ乙
8デフォルトの名無しさん (ワッチョイ e27d-ahOC)
2019/05/02(木) 16:30:08.45ID:h4DYiPpB0 「練馬350 る 8 08」
〜〜〜〜〜〜〜〜
DQN運転手につき注意!
DQN運転手につき注意!
DQN運転手につき注意!
DQN運転手につき注意!
〜〜〜〜〜〜〜〜
DQN運転手につき注意!
DQN運転手につき注意!
DQN運転手につき注意!
DQN運転手につき注意!
9デフォルトの名無しさん (アウウィフ 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; }
}
みたいなのがやりたいです
C# の struct で
引数無しのデフォルトコンストラクタを上書きできないのはなぜでしょう?
回避方法はありますか?
public struct Hoge {
public int a;
public int b;
public Hoge() { this.a = 123; this.b = 456; }
}
みたいなのがやりたいです
10デフォルトの名無しさん (ワッチョイ 233e-8H9x)
2020/04/06(月) 10:39:04.32ID:dJUJ6mUM0 public struct Hoge
{
public int a = 123;
public int b = 456;
}
でだめ?
{
public int a = 123;
public int b = 456;
}
でだめ?
11デフォルトの名無しさん (アウウィフ FFe9-8H9x)
2020/04/06(月) 10:39:59.95ID:TxMJ3ToxF コンパイルエラーになります
12デフォルトの名無しさん (ワッチョイ 233e-8H9x)
2020/04/06(月) 10:45:59.32ID:dJUJ6mUM0 残念です。あきらめてclassにしませう。
13デフォルトの名無しさん (ワッチョイ 0d0c-bVUD)
2020/04/06(月) 10:58:20.70ID:sF8ihuq40 暗黙的な既定のコンストラクタが挿入されないようにとのC#コンパイラの最適化の都合
特に回避策はない
標準ライブラリで
struct Vector3 {
...
public static Vector3 Up = new Vector3(0, 1, 0);
}
みたいなのはある
特に回避策はない
標準ライブラリで
struct Vector3 {
...
public static Vector3 Up = new Vector3(0, 1, 0);
}
みたいなのはある
14デフォルトの名無しさん (アウウィフ FFe9-8H9x)
2020/04/06(月) 12:06:20.02ID:TxMJ3ToxF レスくれたひととワッチョイ似てるけど別人です念のため
15デフォルトの名無しさん (アウウィフ FFe9-8H9x)
2020/04/06(月) 12:11:49.60ID:TxMJ3ToxF >>13
あまり有難みが無いですが・・・とりあえずレスくれたみなさんありがとう
class にしたくない理由は struct のネストをしたいのと
そのとき struct を Marshal.StructureToPtr して使いたいのですが
ネストの内側に class が含まれてると not blittable とか出て困ってるんです
あまり有難みが無いですが・・・とりあえずレスくれたみなさんありがとう
class にしたくない理由は struct のネストをしたいのと
そのとき struct を Marshal.StructureToPtr して使いたいのですが
ネストの内側に class が含まれてると not blittable とか出て困ってるんです
16デフォルトの名無しさん (ワッチョイ 252d-QC6I)
2020/04/06(月) 12:21:26.65ID:ujGPJmEH017デフォルトの名無しさん (ワッチョイ 252d-QC6I)
2020/04/06(月) 12:21:49.56ID:ujGPJmEH0 ごめん投稿先間違った。
18デフォルトの名無しさん (オッペケ Sr01-Po0K)
2020/04/06(月) 15:27:18.81ID:84GlTNOir 外側がクラスでも良いならラップするクラス作れば良いだけだけど
1915 (アウウィフ 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 があるとして
同じことをしたときは問題無いです
not blittable が出るのは
struct s2 の中に class c1 があるとして
GCHandle h = GCHandle.Alloc(s2, GCHandleType.Pinned);
IntPtr ptr = hndl.AddrOfPinnedObject();
// ptr を利用
h.Free();
ちなみに
struct s2 の中に struct s1 があるとして
同じことをしたときは問題無いです
20デフォルトの名無しさん (アウウィフ FFe9-8H9x)
2020/04/06(月) 15:40:47.44ID:TxMJ3ToxF21デフォルトの名無しさん (ワッチョイ 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);
}
}
無制限にマーシャリングできるわけでもないし
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);
}
}
22デフォルトの名無しさん (アウウィフ FFe9-8H9x)
2020/04/06(月) 16:44:22.28ID:TxMJ3ToxF >>21
そもそも内側は struct で充分なんですが
初期値を入れたいのでそのためには class でないといけないとしたら
class にするとエラーになるのでやっぱり困るっていう話です
struct でデフォルト値入れられないと割り切れば済む話です
そもそも内側は struct で充分なんですが
初期値を入れたいのでそのためには class でないといけないとしたら
class にするとエラーになるのでやっぱり困るっていう話です
struct でデフォルト値入れられないと割り切れば済む話です
23デフォルトの名無しさん (ワッチョイ 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;
}
}
目的ならば、外に見せる部分は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;
}
}
24デフォルトの名無しさん (エムゾネ 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();
途中のレスで一回変な事を書いてしまったので混乱させてごめんなさい
やりたいのはこっちです
GCHandle h = GCHandle.Alloc(s, GCHandleType.Pinned);
IntPtr ptr = h.AddrOfPinnedObject();
// ptr 操作
h.Free();
途中のレスで一回変な事を書いてしまったので混乱させてごめんなさい
25デフォルトの名無しさん (エムゾネ FF43-8H9x)
2020/04/07(火) 10:30:31.32ID:KScFPzRrF 意図は「無駄なコピーを極力避けたい」です
26デフォルトの名無しさん (ワッチョイ 6db2-vpK5)
2020/04/07(火) 10:59:30.33ID:FIqFPKAc0 なら参照型にすればメモリ領域は節約できるでしょ。
27デフォルトの名無しさん (ワッチョイ 0d0c-bVUD)
2020/04/07(火) 13:31:26.68ID:10XGXpve0 意図がそれならそもそもなんで親に値型使ってんのってところまで後退しちゃうぞ
値型にGCHandleのピン付けってそこだけ見ると意味不明だし
省略している「ptr操作」の内容次第では初っ端からアプローチを間違えてる可能性がある
値型にGCHandleのピン付けってそこだけ見ると意味不明だし
省略している「ptr操作」の内容次第では初っ端からアプローチを間違えてる可能性がある
28デフォルトの名無しさん (ワッチョイ 2b7c-Wy2p)
2020/04/07(火) 13:56:15.48ID:xToLYP7L0 Cの構造体って構造体の中に別の構造体入れてもコピーが発生する訳じゃない
(子の構造体をいちいち作る訳じゃないから)
C#をCと同じと思わない方が良い
(子の構造体をいちいち作る訳じゃないから)
C#をCと同じと思わない方が良い
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国側が首相答弁の撤回要求、日本側拒否★3 [夜のけいちゃん★]
- 中国側が首相答弁の撤回要求、日本側拒否★4 [夜のけいちゃん★]
- 被爆者は「怒りが腹の底から湧いてくる」高市首相“非核三原則見直し報道”に被爆地で懸念や憤りの声《長崎》 [1ゲットロボ★]
- 債券・円・株「トリプル安」に…長期金利1.755%まで上昇、円は対ユーロで史上最安値 ★2 [蚤の市★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★7 [BFU★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★6 [ぐれ★]
- ネトウヨ「中国人の来日自粛で数千兆円単位の損失?中国に賠償を要求すべき!」 戦後賠償をチャラにしてもらった恩を忘れてて草 [314039747]
- 社民党、新垣氏の離党承認 所属衆院議員ゼロに [377482965]
- 日本人が学習しない理由ってなんなのさ… [819729701]
- 石破「米中韓と特にトラブルなく外交しました、少数与党でほぼ全ての法案成立させました、」👈あれこれ高市よりマシじゃね? [888298477]
- 【悲報】高市さん、消える [535650357]
- 【立憲岡田】高市早苗、2021年岸田政権に「台湾有事は日本の有事か」と迫っていたwww★2 [237216734]
