以下代码是消息批处理例程的概念证明.我是否goto
像瘟疫一样避免并重写此代码?或者您认为这goto
是一种表达方式吗?
如果你重写,请发一些代码......
var queue = new Queue<TraceItem>(this.batch);
while (this.connected)
{
byte[] buffer = null;
try
{
socket.Recv(out buffer);
}
catch
{
// ignore the exception we get when the socket is shut down from another thread
// the connected flag will be set to false and we'll break the loop
}
HaveAnotherMessage:
if (buffer != null)
{
try
{
var item = TraceItemSerializer.FromBytes(buffer);
if (item != null)
{
queue.Enqueue(item);
buffer = null;
if (queue.Count < this.batch …
Run Code Online (Sandbox Code Playgroud) 是否有C#数据结构将键映射到多个值?我有一个项目集合,我想按名称键入; 但是,名称并不是唯一的.Hashtable和Dictionary只允许使用唯一键.查找似乎接近我想要的; 但是,它不是可变的.
是否存在我缺少的内置数据结构,或者我是否需要自己构建一个?
我在我大学的网站上使用Jquery ui,但是他们正在使用Serena Collage和自己风格的预建模板.
我使用的小部件在firefox中工作,但不是ie7,这是一种小车.
mater模板的css显然是罪魁祸首.
我如何!重视Jquery UI css文件或轻松!重要的是整个风格.
我正在使用MS Code Contracts,并且使用接口继承和ContractClassFor属性遇到了麻烦.
给定这些接口和合同类:
[ContractClass(typeof(IOneContract))]
interface IOne { }
[ContractClass(typeof(ITwoContract))]
interface ITwo : IOne { }
[ContractClassFor(typeof(IOne))]
abstract class IOneContract : IOne { }
[ContractClassFor(typeof(ITwo))]
abstract class ITwoContract : IOneContract, ITwo { }
Run Code Online (Sandbox Code Playgroud)
让我们说IOne和ITwo是实质性的接口.所以IOneContract会有大量的代码用于必要的检查.
我不想在ITwoContract中为IOne接口复制所有这些内容.我只想为ITwo接口添加新合同.从另一个合同类继承似乎是重用该代码的可能方式.但是我收到以下错误:
EXEC : warning CC1066: Class 'ITwoContract' is annotated as being the contract for the interface 'ITwo' and cannot have an explicit base class other than System.Object.
Run Code Online (Sandbox Code Playgroud)
这是代码合同中的限制还是我做错了?我们的项目中有很多接口继承,如果我无法弄清楚如何解决这个问题,这就像是Code Contracts的交易破坏者.
我有一个UITableView,我通过它设置了背景色
UIView *myView = [[UIView alloc] init];
if ((indexPath.row % 2) == 0)
myView.backgroundColor = [UIColor greenColor];
else
myView.backgroundColor = [UIColor whiteColor];
cell.backgroundView = myView;
[myView release];
Run Code Online (Sandbox Code Playgroud)
我发现的问题是,当我编辑表(通过setEditing:YES ...)时,某些颜色不变的单元格彼此相邻。如何强制UITableView完全重绘。reloadData做得不好。
是否有深层清洁重绘?
我创建了一个WPF窗口
我将其类定义修改为:
public partial class myWindow : mySubclassedWindow
Run Code Online (Sandbox Code Playgroud)
编译器抛出:
"'myWindow'的部分声明不能指定不同的基类"
myWindow.Xaml:
x:Class="WpfGridtest.myWindow"
Run Code Online (Sandbox Code Playgroud)
所以在某个地方,还有另一个部分类,它继承自"Window",但我找不到它.如何覆盖我的情况以使用子类窗口?
谢谢乔恩,这就是问题所在.还找到了这篇有用的文章:http: //geekswithblogs.net/lbugnion/archive/2007/03/02/107747.aspx
我目前正在编写一个程序,它接受一个指定的文件并用它执行一些操作.目前,它打开它,和/或将其附加到电子邮件并将其邮寄到指定的地址.
该文件可以是以下格式:Excel,Excel报表,Word或PDF.
我目前正在做的是用文件的路径生成一个进程然后启动进程; 但是我也正在尝试修复我添加的错误功能,它根据指定的设置将动词"PrintTo"添加到启动信息中.
我想要完成的任务是我想打开文档,然后将自己打印到程序本身命名的指定打印机.然后,文件应自动关闭.
如果没有办法一般地执行此操作,我们可能能够为每种单独的文件类型提供一种方法.
这是我正在使用的代码:
ProcessStartInfo pStartInfo = new ProcessStartInfo();
pStartInfo.FileName = FilePath;
// Determine wether to just open or print
if (Print)
{
if (PrinterName != null)
{
// TODO: Add default printer.
}
pStartInfo.Verb = "PrintTo";
}
// Open the report file unless only set to be emailed.
if ((!Email && !Print) || Print)
{
Process p = Process.Start(pStartInfo);
}
Run Code Online (Sandbox Code Playgroud)
仍然难倒......可能会像微软那样称呼它,'那是设计'.
什么是在Linux OS上定义BSD的socket(),recv(),send()等的库文件名?(我正在使用RedHat).该文件是否位于/ usr/lib中?
我可以使用"Where"子句将泛型限制为指定类型,例如:
public void foo<TTypeA>() where TTypeA : class, A
Run Code Online (Sandbox Code Playgroud)
如果我的函数有两种泛型类型,我该怎么做?
public void foo<TTypeA, TTypeB>() where TTypeA : class, A && TTypeB : class, B
Run Code Online (Sandbox Code Playgroud)
以上不起作用.添加规则"TTypeB:class,B"的正确语法是什么
我正在尝试使用带有匿名函数的array_walk,但我总是得到错误
// Parse error: syntax error, unexpected T_FUNCTION in ... on line X
if(!empty($myArray)) {
array_walk($myArray, function(&$value, $key){ // Line X
$value = '"'.$value.'"'; // Add quotes
});
}
Run Code Online (Sandbox Code Playgroud)
周围的文件语法是正确的.有什么想法吗?
c# ×4
cocoa-touch ×1
css ×1
generics ×1
goto ×1
iphone ×1
jquery ×1
jquery-ui ×1
linux ×1
php ×1
printers ×1
process ×1
shellexecute ×1
subclassing ×1
uitableview ×1
wpf ×1