我正在编写使用Windows IP Helper API的C#代码.我试图调用的函数之一是" GetBestInterface ",它采用IP的"uint"表示.我需要的是解析IP的文本表示以创建'uint'表示.
我已经通过谷歌找到了一些例子,比如这个或者这个例子,但我很确定应该有一种标准的方法来实现这一点.唯一的问题是,我找不到这种标准方式.IPAddress.Parse似乎是在正确的方向,但它没有提供任何方式获得'uint'表示...
还有一种方法可以使用IP Helper,使用ParseNetworkString,但同样,我宁愿使用.NET - 我相信我越少依赖pInvoke就越好.
那么,有谁知道在.NET中执行此操作的标准方法?
我已将Xampp升级到更新版本(1.7.2).但是现在当我运行我的项目(在CakePHP中完成)时,它正在抛出bug说
Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\ebayn\cake\libs\debugger.php on line 99 Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\ebayn\cake\libs\debugger.php on line 108 Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\ebayn\cake\libs\file.php on line 96 Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\ebayn\cake\libs\cache\file.php on line 89
任何人都可以帮助我,我怎么能纠正这些东西.... ???
提前致谢
我正在尝试使用Silverlight的ChildWindow对象进行确认对话.
理想情况下,我希望它能够工作MessageBox.Show(),整个应用程序停止,直到从用户收到输入.
例如:
for (int i = 0; i < 5; i++)
{
if (i==3 && MessageBox.Show("Exit early?",
"Iterator", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
{
break;
}
}
Run Code Online (Sandbox Code Playgroud)
如果用户点击OK,将停止迭代3 ...
但是,如果我要按照以下方式做某事:
ChildWindow confirm = new ChildWindow();
confirm.Title = "Iterator";
confirm.HasCloseButton = false;
Grid container = new Grid();
Button closeBtn = new Button();
closeBtn.Content = "Exit early";
closeBtn.Click += delegate { confirm.DialogResult = true; confirm.Close(); };
container.Children.Add(closeBtn);
Button continueBtn = new Button();
continueBtn.Content = "Continue!";
continueBtn.Click += delegate { …Run Code Online (Sandbox Code Playgroud) 想知道是否可以执行以下操作(我知道代码不会按预期工作,只是试图达到目的):
class Form
{
private $v = array();
function __set($varName, $varValue)
{
... do some treatment on the varValue ...
$this->v[$varName] = $varValue;
}
function &__get($varName)
{
if(!isset($this->v[$varName]))
$this->v[$varName] = NULL;
return $this->v[$varName];
}
};
Run Code Online (Sandbox Code Playgroud)
我希望能够设置一个变量:
$form->Values['whatever'] = 'dirty';
并让它运行setter函数,它将调用一些清理操作,并实际上最终填充其他几个数组,如'HtmlValues'和'SqlValues',所以我可以拉出编码为我想要的格式的值,所以我以后可以调用
echo $form->HtmlValues['whatever'];
问题当然是正常的问题,如果你只是使用_ get,你最终会设置一个返回的值,即使& _get通过引用返回它并做了一些工作,__ set实际上从未被调用,即使你'设置一个私人会员.
所以基本上,我想知道是否有一种方法可以在数组中设置函数时调用一个函数(可能是多个数组深,哪些不喜欢 $form->Values['group']['item'] = 'whatever';
期望的输出将是这样的:
$form->Values['name'] = "&";
echo $form->HtmlValues['name']; = &
Run Code Online (Sandbox Code Playgroud)
(只是为了强化,我不是在寻找实际的编码,只是能够在每个变量上调用它,因为它的设置/更改无需手动编码整个数组)
我有一个命令提示符窗口,运行基于Web的软件.我想在C#中创建一个程序,将命令注入到运行命令提示符窗口中.
有什么指针吗?
谢谢,保罗.
我已经宣布了一个词典的字典:
Dictionary<String, Dictionary<String, String>> values;
Run Code Online (Sandbox Code Playgroud)
我有一个getter来获取特定索引的字典:
public Dictionary<String,String> get(String idx)
{
lock (_lock)
{
return values[moduleName];
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我正在多线程环境中工作.我的问题是我需要返回我的字典的副本,以便像这样线程安全:
public Dictionary<String,String> get(String idx)
{
lock (_lock)
{
return new Dictionary<string, string>(values[moduleName]);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我没有,那么调用getter的类会收到一个副本(所以如果我从Dictionary<String, Dictionary<String, String>>遗嘱中删除这个字典它仍然可以工作)?
干杯,
蒂埃里.
我需要实时解析一个大型CSV文件,同时由不同的进程修改(附加).从大到大,我的意思是此时约为20 GB,并且正在缓慢增长.应用程序只需要检测并报告数据流中的某些异常,只需要存储小的状态信息(O(1)空间).
我在考虑每隔几秒轮询文件的属性(大小),打开一个只读流,寻找前一个位置,然后继续解析我第一次停止的位置.但由于这是一个文本(CSV)文件,我显然需要在以某种方式继续跟踪换行符,以确保我总是解析整行.
如果我没有弄错的话,这应该不是一个实现的问题,但我想知道是否有一个共同的方法/库已经解决了一些这些问题?
注意:我不需要CSV解析器.我需要一个关于库的信息,它简化了从动态修改的文件中读取行.
我试图在新的应用程序版本中为某个protobuf序列化类添加一个新的枚举值,并且在测试时,注意到以前的版本将抛出异常,给定这种新的文件格式:
An unhandled exception of type 'ProtoBuf.ProtoException' occurred in protobuf-net.dll
Additional information: No {enum-type-name} enum is mapped to the wire-value 3
这是相当明显,它告诉我,没有为没有枚举值int的价值3,但我一直有这样的想法Protocol Buffers的默认零值("默认")枚举值(如果这样的话),在情况实际的枚举值无法映射到.
为了澄清,可以使用以下示例重现这一点(我有意将反序列化步骤转换为另一个类,以模仿试图加载新格式的旧应用程序):
// --- version 1 ---
public enum EnumV1
{
Default = 0,
One = 1,
Two = 2
}
[ProtoContract]
public class ClassV1
{
[ProtoMember(1)]
public EnumV1 Value { get; set; }
}
// --- version 2 ---
public enum EnumV2
{
Default = 0,
One = 1,
Two = …Run Code Online (Sandbox Code Playgroud) c# enums backwards-compatibility protocol-buffers protobuf-net
我有.Net的RichTextBox控件的问题.它似乎不支持表格单元格格式化,这很有趣,因为大多数时候我创建表格我希望单元格内容是右对齐的(数字,货币).
如果我尝试在RichTextBox中打开写字板文档,它会忽略(并实际删除)用于单元格对齐的命令.我尝试了几种解决方法,但没有成功.
谁能想到解决这个问题的想法?(不使用固定宽度的字体和空格)这将是最好的解决方案,因为其他代码已经正常工作,所以如果只需要的东西是一个肮脏的黑客,它会很棒.
或者,您可以推荐使用.Net Rich Text Editor的开源替代方案吗?我需要一个用户控件,我可以嵌入我的Windows窗体并以编程方式访问内容(创建内容或附加内容).我在网上搜索了一段时间,但发现只有web(Ajax/Javascript)控件.
我也可以使用HTML WYSIWYG编辑器,但它们基本上都是使用MSHTML嵌入和编辑的IE浏览器,在Winforms应用程序中使用它感觉有点奇怪(也许我错了).在这种情况下,我们需要一些额外的时间来实现HTML的内容生成器 - 尽管它比RTF恕我直言更容易阅读和生成.
你们为此目的最好的是什么?
我在Visual Studio 2008中逐步调试多线程.NET应用程序时遇到问题.
随着每个阶梯线,Visual Studio变得越来越慢(跳转到下一行需要越来越多的时间)并且通常在几行之后挂起(我得到"Visual Studio忙"气球提示),我需要停止调试.
我怀疑问题是由于应用程序连接了几个TCP/IP客户端,这意味着每次我创建一个断点,他的网络缓冲区都会被填满,直到我继续我的应用程序.每当我使用F10步骤到下一行代码时,Visual Studio会很快唤醒所有其他线程以便它们处理输入数据.
有没有人有这些问题的经验,以及如何避免这些问题的建议?
c# ×5
.net ×3
cakephp ×1
childwindow ×1
command-line ×1
concurrency ×1
confirm ×1
csv ×1
debugging ×1
dialog ×1
dictionary ×1
enums ×1
html-editor ×1
iphelper ×1
large-files ×1
networking ×1
php ×1
protobuf-net ×1
real-time ×1
return ×1
richtextbox ×1
rtf ×1
sendkeys ×1
silverlight ×1
stream ×1
winapi ×1
wysiwyg ×1