我大量使用字节数组来传输对象,原始数据,通过网络和返回.我通过一个类型实现ISerializable来适应java的方法,它包含两个方法,作为接口的一部分,ReadObjectData和WriteObjectData.使用此接口的任何类都会将日期写入字节数组.像那样的东西
class SerializationType:ISerializable
{
void ReadObjectData (/*Type that manages the write/reads into the byte array*/){}
void WriteObjectData(/*Type that manages the write/reads into the byte array*/){}
}
Run Code Online (Sandbox Code Playgroud)
写完所有对象后,我发送一个网络数组.
这实际上是双重问题.这是通过网络以最高效率(速度,大小)发送数据的正确方法吗?
您是否会使用此方法将对象写入文件,而不是通常使用xml序列化?
编辑#1
Joel Coehoorn提到了BinaryFormatter.我从未使用过这门课.除了我目前在msdn上看到的内容之外,你会详细说明,提供好的例子,参考资料,建议,当前的做法吗?
在处理时更新Windows窗体应用程序上的标签的最佳方法是什么?
当用户单击按钮时,我有一个循环对用户系统上的文件进行一些处理.
foreach (System.IO.FileInfo f in dir.GetFiles("*.txt"))
{
// Do processing
// Show progress bar
// Update Label on Form, "f.Name is done processing, now processing..."
}
Run Code Online (Sandbox Code Playgroud)
一些示例代码是什么?
究竟是什么叫做?它是线程还是代理?
我需要能够检测到shift键被保持,但我不想使用事件或全局变量来确定它.C#中是否有API可以让您询问当前按下的键而不是使用该事件?
我正在使用一个具有返回对象的API IEnumerable<T>,所以类似于 Object.GetEnum<T>.
我有一个方法,在其中将调用GetEnum但我想添加方法的参数传递参数类型的能力.所以我想这样做:
private void myMethod(apiClass??? apiclass)
{
IEnumerable< itemType > enumX = ObjectGetEnum< itemType >
}
private void Main()
{
myMethod(apiClass1);
myMethod(apiClass2);
}
Run Code Online (Sandbox Code Playgroud)
如上所述,我不知道myMethod中的参数类型应该是什么,或者如何编写获取枚举器的代码.我尝试传递"apiClass",即apiClass1和apiClass2继承的类.但后来却被困在那里做什么......而且我认为无论如何都不会真的有效.
所以我不确定我是否只是不知道在C#中如何做到这一点,或者如果它是可能的,...... 或者我可能在API中遗漏了某些东西(或者API缺少一些东西来促进这一点).
谢谢FKC
我正在为Windows Mobile开发一个应用程序(Compact Framework 2.0).它有一个带有PictureBox的WinForms.
我想移动PictureBox的图像,但我不知道该怎么做,所以我选择移动孔PictureBox.
为此,我使用此事件:
private void imagenMapa_MouseMove(object sender, MouseEventArgs e)
{
imagenMapa.Left = e.X;
imagenMapa.Top = e.Y;
this.Refresh();
}
Run Code Online (Sandbox Code Playgroud)
但是当我移动PictureBox时,它会闪烁并移动到每个地方.
我做错了什么?
根据我的理解,32位进程只能在没有/ 3GB开关的情况下在32位窗口上访问2GB内存,并且操作系统会根据自己的恶魔原因占用一些内存.这似乎与我的经验相吻合,因为我们有一个应用程序崩溃,当它达到大约1.2-1.5 GB的内存异常时,即使仍然有足够的可用内存.
我的问题是,将这个32位应用程序移动到64位窗口是否允许它现在可以访问超过1.5GB左右的内存?或者应用程序本身是否必须升级到64位?
我有一个模块,它使用ctypes将一些功能从静态库包装到一个类中.模块加载时,它会调用静态库中的初始化函数.卸载模块时(可能是解释器退出时),库中有一个我想要调用的卸载函数.我该如何创建这个钩子?
这段代码昨天让我感到惊讶,我很好奇发生了什么事.
如果我在表单的页面上引用我知道的Div元素,即使使用getElementsByName复制/粘贴确切的名称,以下内容也无法找到它.
var coll = document.getElementsByName("txtState"); //coll will be null
Run Code Online (Sandbox Code Playgroud)
如果我得到页面上的所有Div标签并遍历它们查看name属性,我可以找到正确的Div元素.
var coll = document.getElementsByTagName("Div");
for (var i = 0; i < coll.length; i++) {
var el= coll[i];
if (el.name != null) {
if (el.name.length > 0) {
if (el.name == "txtState") {
alert("Found");
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
那么这是什么一回事?为什么Javascript无视获取特定元素?为什么我必须遍历集合?
有人可以确认其不能够改变,当你点击一个选择框,显示一个下拉的高度.
select的size属性使它看起来像一个列表,CSS中的height属性也不会很好.
我试图从Groovy类中调用Java类的方法.Java方法有一个String数组作为参数,我的Groovy类中有一个字符串集合.如何将Groovy集合转换为Java String数组?
Java方法:
public class SomeJavaClass{
public void helpDoSomething(String[] stuff){
}
}
Run Code Online (Sandbox Code Playgroud)
Groovy代码
class SomeGroovyClass {
def data = ["a", "b", "c"]
def doSomething = {
def javaClass = new SomeJavaClass()
javaClass(data) //Groovy passes ArrayList, Java class expects String[] ???
}
}
Run Code Online (Sandbox Code Playgroud) c# ×4
html ×2
winforms ×2
.net ×1
64-bit ×1
collections ×1
file-io ×1
groovy ×1
html-select ×1
ienumerable ×1
javascript ×1
label ×1
networking ×1
onmousemove ×1
picturebox ×1
process ×1
progress ×1
python ×1
windows ×1
x86 ×1