C# に詳しくないので間違っているかもしれませんが、配列初期化子やオブジェクト初期化子で表現できる範疇ではないでしょうか。
JavaScript
1var users = [{name: 'taro', id: 1, position: 0}, {name: 'koichi', id: 2, position: 100}]
あるいは、型付言語的な仕組みが欲しいという事なのでしょうか。
JavaScript
1'use strict';
2function User (name, id, position) {
3 this.name = String(name);
4 this.id = Number(position);
5 this.position = Number(position);
6}
7
8function Box ( /*arrayLike*/ ) {
9 if (arguments.length) {
10 var arrayLike = Object(arguments[0]);
11
12 for (var i = 0, len = arrayLike.length, user; i < len; ++i) {
13 if (Object.prototype.hasOwnProperty.call(arrayLike, i)) {
14 user = arrayLike[i];
15 this.add(user.name, user.id, user.position);
16 }
17 }
18 }
19}
20
21Object.defineProperty(Box.prototype, 'add', {
22 writable: true,
23 enumerable: false,
24 configurable: true,
25 value: function add (name, id, position) {
26 return Array.prototype.push.call(this, new User(name, id, position));
27 }
28})
29
30var box1 = new Box();
31box1.add('taro', 1, 0);
32box1.add('koichi', 2, 100);
33console.log(box1);
34
35var box2 = new Box([{name: 'taro', id: 1, position: 0}, {name: 'koichi', id: 2, position: 100}]);
36console.log(box2);
「seriさんがどういう設計を望んでいるのか」を日本語で書き表してみて下さい。
また、seriさんの分かる範疇でJavaScriptコードを書き、「コード上で足りない部分」を説明してみて下さい。
Re: seri さん
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/30 08:31
2017/08/30 08:45 編集
2017/08/30 08:50
2017/08/30 08:56
2017/08/30 09:14 編集