如何知道对象是否实现索引器?我需要共享DataRow和IDataReader的逻辑,但它们不共享任何接口.
我也尝试使用泛型,但不知道我应该对where子句施加什么限制.
public class Indexer {
// myObject should be a DataRow or a IDataReader
private object myObject;
public object MyObject {
get { return myObject; }
set { myObject = value; }
}
// won't compile, myObject has no indexer
public object this[int index] {
get { return myObject[index]; }
set { myObject[index] = value; }
}
public Indexer(object myObject) {
this.myObject = myObject;
}
}
public class Caller {
void Call() {
DataRow row = null;
IDataReader reader …Run Code Online (Sandbox Code Playgroud) 我想知道我是否可以在没有锁定mips cpu(尤其是Amazon或Danube)的情况下读取或写入共享int值.我的意思是如果这样的读或写是原子的(其他线程不能中断它们).要清楚 - 我不想阻止线程之间的竞争,但我关心int值本身是否已损坏.
假设编译器在cpu字的边界处对齐所有的int,它应该是可能的.我用gcc(g ++).测试还表明它似乎正常工作.但也许有人肯定知道吗?
我尝试过各种方法来实现这一目标.
我决定不要覆盖formfield_for_dbfield,因为它没有得到请求对象的副本,我希望避免使用thread_locals hack.
我决定在我的ModelAdmin类中重写get_form并尝试以下方法:
class PageOptions(admin.ModelAdmin):
def get_form(self, request, obj=None, **kwargs):
if request.user.is_superuser:
self.fieldsets = ((None, {'fields': ('title','name',),}),)
else:
self.fieldsets = ((None, {'fields': ('title',),}),)
return super(PageOptions,self).get_form(request, obj=None, **kwargs)
Run Code Online (Sandbox Code Playgroud)
当我从get_form中打印fieldsets或declared_fieldsets时,我得到None(或者我在PageOptions中设置的初始值).
为什么这不起作用,是否有更好的方法来做到这一点?
为了澄清,我想检查有效字符.对于名字,姓氏我想检查[A-Za-z].对于电子邮件,我想检查有效的电子邮件字符.
我会用什么算法来检查用户输入?具体来说,在添加到数据库之前,我想检查用户的有效字符的名字,姓氏和电子邮件地址.
显然,这样的事情是不够的:
if ( [firstName.text isEqualToString:@""] || [lastName.text isEqualToString:@""] || [emailAddress.text isEqualToString:@""]) { ... }
Run Code Online (Sandbox Code Playgroud) 我正在开发一个带有地图的应用程序,角落里有一个div,里面有一些东西.您可以单击此地图以在一个小窗口中显示一些信息.在某些情况下,窗口被角落里的div覆盖.
我想要相反的效果(窗口覆盖div).我认为这只是一个z索引问题,但我无法让它工作.这是在IE7和读取一点似乎z-index将无法工作,除非它在一个定位的元素内.
这些元素似乎正确定位,以使z-index正常工作,但我运气不佳.我已经玩过通过Firebug添加样式但是没有任何运气可以改变任何东西.窗口真的只是两个div,一个绝对定位一个,一个相对一个内部.
z-index是唯一可能成为问题的东西还是还有其他我不知道的东西?
有没有其他方法可以达到我想要的效果?我不能简单地通过jquery或其他东西隐藏div,因为它的一部分应该从地图上打开的窗口后面看到.
如何从单一路径获取上层路径?
所以说你有一条路:
'C:\a\b\c\d\'
Run Code Online (Sandbox Code Playgroud)
我怎么去'C:\a\b'或'C:\a\b\c'
有没有pythonic方式来做到这一点?
我经常对我必须包含在我的代码中的日志记录数量感到沮丧,这让我想知道是否有更好的做事方式.
我不知道这是否已经完成或是否有人提出了更好的想法,但我想知道是否有人知道将"记录器""注入"应用程序,以便被动地监视线程并安静地记录日志流程发生时不必执行以下操作:
public void MyProcess(int a, string b, object c)
{
log(
String.Format(
"Entering process MyProcess with arguments: [a] = [{0}]; [b] = [{1}]; [c] = [{2}]",
a.ToString(),
b,
c.ToString()
);
try
{
int d = DoStuff(a)
log(
String.Format(
"DoStuff({0}) returned value {1}",
a.ToString(),
d.ToString()
)
);
}
catch (Exception ex)
{
log(
String.Format("An exception occurred during process DoStuff({0})\nException:\n{1}",
a.ToString(),
ex.ToString())
)
}
}
Run Code Online (Sandbox Code Playgroud)
如果我可以对我的记录器说:
Monitor(MyClass.MyMethod)
Run Code Online (Sandbox Code Playgroud)
然后它将监视该方法内部的所有内容,包括传入参数以及方法调用和传递给这些方法的值,发生的异常等.
过去有没有人实现这样的东西?甚至可以实施吗?以这种方式登录只是一个梦想?
我喜欢设计能做到这一点的东西,但我甚至不知道我会从哪里开始.当然,我也不想重新发明轮子,如果它已经完成了,如果有人能指出我正确的方向,那就太好了.
任何建议都会感激不尽......
编辑:我想我会回答一个问题,询问日志中所需的详细程度.通常需要提供可配置级别的日志记录,以便如果配置指定详细日志记录,则记录所有内容,而如果配置了关键日志记录,则仅记录某些信息以及异常.如果配置了致命日志记录,则仅记录导致应用程序死亡的信息.这样的东西是可配置的还是AOP需要3或4个不同的构建,具体取决于日志记录级别的数量?
我经常使用4个级别:致命,严重,信息,详细
是否可以通过localhost/127 ...通过共享相同的端口#来获得两个独立的程序在同一台计算机上进行通信(仅限单向)
我们正在开展一个学生项目,我们需要在两台计算机之间发送包含遥测数据的UDP数据包.生成这些数据包的程序是专有的,但我正在使用System.Net.Sockets.UdpClient和System.Net.IPEndPoint使用C#编写接收程序.
在我们小组的会议期间,当我们连接多台计算机时,我们可以分别运行这两个程序.但是,当我回家并试图扩展遥测处理程序时它并不是很有用,因为我只有一台计算机(我需要一个用于测试处理程序的源程序).我也无法在学校的任何一台计算机上安装该程序.
当我尝试同时在我的计算机上运行这两个程序(最后开始我的程序)时,我得到一个SocketException,说通常只允许使用每个端口.这让我相信必须有一些方法来共享端口(虽然任何时候只有一个程序可以在计算机上使用端口是有意义的,我同时运行多个互联网浏览器没有问题(我假设他们使用端口80作为http)).
编辑的REEDIT:
sipwiz是对的,感谢Kalmi指向UdpClient.Client.Bind()的指针.但是,当时我们正在考虑使用另一个生成类似数据包的程序,并且我们可以使用我的第一个(虽然天真)方法在ctor中使用UDP客户端绑定在同一台计算机上共享端口.抱歉,您必须取消标记您的答案,sysrqb.
我有一个.xsd文件,我用它来使用Visual Studio中的xsd.exe工具生成代码.一些类成员是Guids,xsd.exe工具提供2个警告:
命名空间" http://microsoft.com/wsdl/types/ "无法在此架构中引用.未声明类型" http://microsoft.com/wsdl/types/:guid ".
Guid类型被识别,因为生成的C#文件有效且有效.谁知道如何摆脱这些警告?
验证XSD和生成为System.Guid的类成员的正确语法是什么?