假设我有一个表示数据字段的对象,该对象需要以下属性:Name,Type,Value,Length.这是对象:
class Field<T>
{
public string Name { get; set; }
public Type Type
{
get
{
return typeof(T);
}
}
public int Length { get; set; }
public T Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我使用了泛型,因为我想强制代码的用户只能分配某种类型的值.
现在的问题是我想创建一个字段列表.
如果我像那样创建列表,List<Field<object>>我们可以将任何值分配给列表中的给定字段,当我们查询Type时,我们得到'object'.
事情是 - 在那个列表上我可能想要几个字段持有字符串,很少持有整数,日期,甚至自定义对象反过来将有一个字段列表......
泛型是一个很好的解决方案吗?如果是的话,我将如何实施呢?如果没有,有什么更好的方法?
---编辑---
只是为了增加一些背景:
1.我可能想要一个字段列表,每个字段将包含不同的数据类型,如下所示:
List<Field<object>> lst = new List<Field<object>>();
lst.Add(new Field<string>());
lst.Add(new Field<int>());
lst.Add(new Field<SomeObjectFromMyApp>());
Run Code Online (Sandbox Code Playgroud)
2.稍后我将不得不在循环中自动查询这些对象及其属性,类似于:
foreach(Field<object> fld in lst)
{
Type t = fld.Type;
//do some other stuff
}
Run Code Online (Sandbox Code Playgroud) 在我的AngularJS应用程序中,我有一个基于WebSocket的服务.如果WebSocket连接断开,我想完全"重启"应用程序(从$ route转到默认页面,重新创建服务等).这可以实现吗?这就是我的开始,但从那时起我不知道如何继续:
模块:
(function () {
angular.module('mainModule', ['ngRoute'])
.config(['$routeProvider', function ($routeProvider) {
$routeProvider.
when('/home', {
templateUrl: 'partials/home.html',
controller: 'appController'
}).
when('/register', {
templateUrl: 'partials/register.html',
controller: 'appController'
}).
otherwise({
redirectTo: '/home'
});
}]);
}());
Run Code Online (Sandbox Code Playgroud)
服务:
(function () {
var app = angular.module('mainModule');
app.service('$wsService', ['$q', '$window', function ($q, $window) {
$window.console.log("WebSocket SERVICE: started");
var self = this;
var ws = new WebSocket("ws://127.0.0.1:9090");
this.isConnected = function (m) {};
ws.onopen = function () {
$window.console.log("WebSocket SERVICE: connected");
self.isConnected(true);
};
ws.onmessage = function (m) { …Run Code Online (Sandbox Code Playgroud) 假设我正在为REST服务A编写Spring集成测试.该服务依次点击另一个REST服务B并获取要在REST服务C上命中的URI列表.它是一种自动发现模式.我想使用MockRestServiceServer模拟B和C响应.
现在来自B的响应是一个URI列表,它们都非常相似,为了举例说明,我的B响应是这样的:
{
uris: ["/stuff/1.json", "/stuff/2.json", "/stuff/39.json", "/stuff/47.json"]
}
Run Code Online (Sandbox Code Playgroud)
简单地说,服务A会将它们中的每一个附加到服务C的基本URL上并发出这些请求.
模拟B很容易,因为它只有1个请求.
模拟C很麻烦,因为我必须模拟每个URI以适当的模拟响应.我想自动化它!
所以首先我写自己的匹配器来匹配不是一个完整的URL,但它的一部分:
public class RequestContainsUriMatcher implements RequestMatcher {
private final String uri;
public RequestContainsUriMatcher(String uri){
this.uri = uri;
}
@Override
public void match(ClientHttpRequest clientHttpRequest) throws IOException, AssertionError {
assertTrue(clientHttpRequest.getURI().contains(uri));
}
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,因为我现在可以这样做:
public RequestMatcher requestContainsUri(String uri) {
return new RequestContainsUriMatcher(uri);
}
MockRestServiceServer.createServer(restTemplate)
.expect(requestContainsUri("/stuff"))
.andExpect(method(HttpMethod.GET))
.andRespond(/* I will get to response creator */);
Run Code Online (Sandbox Code Playgroud)
现在我需要的是一个响应创建者,它知道完整的请求URL以及模拟数据所在的位置(我将它作为测试资源文件夹中的json文件):
public class AutoDiscoveryCannedDataResponseCreator implements ResponseCreator {
private final Function<String, String> cannedDataBuilder;
public AutoDiscoveryCannedDataResponseCreator(Function<String, String> cannedDataBuilder) { …Run Code Online (Sandbox Code Playgroud) 有没有办法将打包的双字整数从XMM寄存器推送到堆栈?然后在需要时弹出它?
理想情况下,我正在寻找像PUSH或POP这样的通用寄存器,我已经检查了英特尔手册,但我要么错过了命令,要么没有一个...
或者我是否必须将值解压缩到通用寄存器然后推送它们?
我正在使用angular 1.5,我想将部分DOM提取到一个组件中.
这是我到目前为止所做的:
angular.module('my-app').component("menuItem",{
templateUrl : "lib/menu-item.tmpl.html",
bindings : {
index : "<",
first : "<",
last : "<",
item : "=",
onDelete : "&",
onMoveUp : "&",
onMoveDown : "&"
},
controller : function($scope) {
}
});
Run Code Online (Sandbox Code Playgroud)
模板看起来像这样:
<div>
<aside class="sort-buttons">
<ul>
<li>
<button ng-click="$ctrl.onMoveUp({index : $ctrl.index})"
ng-disabled="$ctrl.first">
<i class="icon icon-up"></i>
</button>
</li>
<li>
<button ng-click="$ctrl.onMoveDown({index : $ctrl.index})"
ng-disabled="$ctrl.last">
<i class="icon icon-down"></i>
</button>
</li>
</ul>
</aside>
<div class="row">
<button class="btn btn-danger btn-icon btn-remove"
ng-click="$ctrl.onDelete({index : $ctrl.index})">
<i …Run Code Online (Sandbox Code Playgroud) 在A列中我的数字计算如下:
[A]
[1]
[2]
[3]
[4]
[1]
[2]
[3]
...
Run Code Online (Sandbox Code Playgroud)
在列KI中有值:
[row] [K]
[ 1 ] [7]
[ 2 ] [3]
[ 3 ] [6]
[ 4 ] [9]
Run Code Online (Sandbox Code Playgroud)
如果行号是存储在A列中的数字,我如何从列K中提取值?
我尝试过使用Address()和Cell(),如下所示:
=Cell("contents",ADDRESS(A5,11))
Run Code Online (Sandbox Code Playgroud)
ADDRESS应该返回对给定单元格的引用,提供行号和列号(可以从其他单元格获取),CELL应该参考并返回有关引用单元格的详细信息(此处为"content",因此为value).如果我像这样使用它:
=Cell("contents", K4)
Run Code Online (Sandbox Code Playgroud)
当我使用ADDRESS时,它给了'9':
=ADDRESS(A4,11)
Run Code Online (Sandbox Code Playgroud)
它给了我4美元.但是当我一起使用它时,我得到一个错误.
有没有办法检查__m128i变量中的所有位/字节/字等是否为0?
在我的应用程序中,我必须检查__m128i变量中包含的所有整数是否为零.我是否必须提取它们并分别进行比较?
编辑:
int next = 0;
do{
//some code
next = idata.m128i_i32[0] + idata.m128i_i32[1] + idata.m128i_i32[2] + idata.m128i_i32[3];
}while(next > 0);
Run Code Online (Sandbox Code Playgroud)
我需要的是检查idata是否全为零而不必访问每个单独的元素,如果它们是...则退出循环...
基于Harold的评论,这是解决方案:
__m128i idata = _mm_setr_epi32(i,j,k,l);
do{
//some code
}while( !_mm_testz_si128(idata, idata) );
Run Code Online (Sandbox Code Playgroud)
如果idata中每个DW的所有低位都为0,这将退出循环...感谢hraold!
我有一个简单的node.js应用程序与socket.io(1.3.5),取自socket.io示例:
// Setup basic express server
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
var port = process.env.PORT || 3000;
server.listen(port, function () {
console.log('Server listening at port %d', port);
});
// Routing
app.use(express.static(__dirname + '/public'));
io.of('/admin').on('connection', function(socket){
//handle conection on /admin namespace
});
io.of('/user').on('connection', function(socket){
//handle conection on /user namespace
});
Run Code Online (Sandbox Code Playgroud)
现在在我的前端,我连接到这些特定的命名空间,如此(再次,从示例中):
var admin_socket = io('/admin');
var user_socket = io('/user');
Run Code Online (Sandbox Code Playgroud)
该应用程序在端口3000上运行,并使用URL打开网站localhost:3000.
当我这样做我收到CORS错误时,似乎客户端的Socket.io在我开始使用命名空间时不会自动检测端口号(在firefox开发工具中我可以看到请求localhost/而不是localhost:3000/).
如果在我的服务器端,我不使用命名空间:
io.on('connection', function(socket){ …Run Code Online (Sandbox Code Playgroud) 我期待编写一个简单的桌面应用程序和相应的移动应用程序,方案将是:
像这样的非常基本的应用程序将在两者之间发送简单的文本消息.
我想一个示例应用程序就像是手机上的PC的"遥控器",可以在市场上找到.
我开始研究UDP多播,并花了一天时间试图让它工作.想法是两个应用程序加入相同的多播组,加入时手机向该组发送消息,PC拿起它并用它的IP响应,然后手机与桌面应用程序建立TCP连接.听起来像是一个有效的解决方案,对吧?好吧,无论我尝试什么,这都会发生:
这是一篇包含代码的帖子,当我尝试使用sockets-for-pcl时.
以下是我尝试使用.NET中已有的内容:
PC - 仅发送消息:
UdpClient udp = new UdpClient(port);
IPAddress group_ip = IPAddress.Parse("139.100.100.100");
IPEndPoint client_ipep = new IPEndPoint(group_ip, 3344);
byte[] b = System.Text.Encoding.UTF8.GetBytes(txtEntry.Text);
udp.Send(b, b.Length, client_ipep);
Run Code Online (Sandbox Code Playgroud)
电话 - 仅接收:
HostName hostName = new HostName("139.100.100.100");
DatagramSocket udp = new DatagramSocket();
udp.MessageReceived += (sender, args) =>
{
uint length = args.GetDataReader().ReadUInt32();
string text = args.GetDataReader().ReadString(length);
};
await udp.BindServiceNameAsync("3344");
udp.JoinMulticastGroup(hostName);
Run Code Online (Sandbox Code Playgroud)
然而,经过一天我放弃了,因为文档很少,调试需要我获得一些网络扫描工具......
当我在互联网上搜索网络服务发现的一些库时,我发现了一些Android文档,但没有用于Windows Phone 8.1.所以我想我的问题是:Windows Phone有什么类似的吗?或者,如果您发现我的代码有任何问题,我需要更改哪些内容才能进行通信?谢谢.
在我写的软件中,我将从外部设备(通过USB连接)读取一些数据.我给出的驱动程序(DLL文件)不是线程安全的,一次只能使用一个实例.我必须在C#中为这些驱动程序编写一个包装器.鉴于我有一个多线程应用程序,我想确保:
IDisposable?).从一次性单身人士我可以看出意见分歧,单身是否可以IDisposable.也许两者都有更好的解决方案?欢迎任何帮助.
现在我有一个IDisposable单身,如下所示:
using System;
using System.Runtime.InteropServices;
namespace Philips.Research.Myotrace.DataReading.Devices
{
class MyDevice: IDisposable
{
private static volatile MyDeviceInstance;
private static object SyncRoot = new Object();
private bool disposed = false;
private MyDevice()
{
//initialize unmanaged resources here (call LoadLibrary, Initialize, Start etc)
}
public MyDevice GetInstance()
{
if (Instance == null)
{
lock (SyncRoot)
{
if (Instance == null)
{
Instance = new MyDevice();
}
}
}
return Instance;
} …Run Code Online (Sandbox Code Playgroud) c# ×3
angularjs ×2
javascript ×2
simd ×2
assembly ×1
c++ ×1
excel ×1
generic-list ×1
generics ×1
idisposable ×1
intrinsics ×1
mocking ×1
node.js ×1
socket.io ×1
spring ×1
spring-mvc ×1
sse ×1
udp ×1
websocket ×1
x86 ×1