在我的情况下,我有五个巨大的文本文件,我必须嵌入到一个文本文件中.
我尝试使用StreamReader(),但我不知道如何使它再读一个文件,我是否必须分配另一个变量?
展示一个例子将非常感激.
我第一次尝试使用匿名类型(测试):
private void button4_Click(object sender, EventArgs e)
{
test(new { a = "asd" });
}
private void test(string a)
{
}
Run Code Online (Sandbox Code Playgroud)
我收到错误"无法从'AnonymousType#1'转换为'string'"
另外我想知道如果参数是字符串[],如何传递匿名类型
private void test(string[] a)
{
}
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我正在尝试在文本文件中显示字节数组的内容.
这是我的代码:
var writer = new System.IO.StreamWriter(Application.StartupPath + @"\B323.txt");
writer.Write(data.ToString());
writer.Close();
writer.Dispose();
Run Code Online (Sandbox Code Playgroud)
data是一个byte []数组.
输出是"System.Byte []",为什么?
我正在尝试显示这个数组的内容,问题出在哪里?
在我的情况下,我有面板,但要明确我将在我的例子中使用按钮.
我有5个(或更多)按钮,我设置了一个事件,例如 - OnMouseHover,所有五个按钮.我如何获得,如果所有事件链接到一个方法,哪一个鼠标悬停
要捕获鼠标悬停的按钮,我尝试使用"this",但它链接到表单本身.
private void buttonX_MouseHover(object sender, EventArgs e)
{
this.Text = "Test";
}
Run Code Online (Sandbox Code Playgroud)
我期望鼠标悬停在指定按钮上的文本将其文本更改为"Test",但它仅发生在form.Text上.
在我的真实程序中,我有60个面板,我再次使用一个方法来处理所有OnMouseHover事件.我如何获得鼠标悬停的面板(或上例中的按钮)?
我想声明一个外部函数,但我不能这样做.
这是我的Delphi声明,它不能编译.
procedure Encode(input:byte^;output:byte^;size:DWORD);cdecl;external 'blowfish.dll';
Run Code Online (Sandbox Code Playgroud)
这是我的C#声明,它有效.
[DllImport("blowfish.dll")]
public static unsafe extern void Encode(byte* input, byte* output, UInt32 size);
Run Code Online (Sandbox Code Playgroud)
我的问题:编译器表示"("在字节^之后,因为^.如果我创建一个类型mybyte = byte ^;那么我如何用字节数组中的第一个成员调用该函数 - 然后它无法编译,因为数组不是"myByte"类型?
如果我有子类,子类继承父类的所有方法,但是如何使用父类中子类的函数?抽象是什么?我该如何完成它?
我的代码:
type
cParent = class(TObject)
private
function ParentFunction:byte;
function ChildFunction:byte;virtual;abstract;
end;
type
cChild = class(cParent)
private function ChildFunction:byte;override;
end;
function cChild.ChildFunction:byte;
begin
Exit(20);
end;
function cParent.ParentFunction:byte;
begin
Exit(10);
end;
var
c:cParent;
begin
c:= cParent.Create;
WriteLn(c.ChildFunction);
Readln;
end.
Run Code Online (Sandbox Code Playgroud)
它编译文件,但我得到抽象异常.
我的父类是一个表单(TParent),代码如下:
type
TChild = class(TParent)
private
procedure Handle(sock:integer);static; //error
end;
implementation
Run Code Online (Sandbox Code Playgroud)
错误是“STATIC只能用于非虚拟方法”
有没有可能的方法来做到这一点?
如果没有,我可以将父类(TForm)设为静态吗?
TParent 类是用于 WSAAsyncSelect() 的表单,它是隐藏的(它不是主表单)。它仅用于消息循环。
如果两个类都放在一个单元中 - 没有问题,子类从父类继承私有方法,但如果它们在不同的单元中,则类只能访问公共方法.为什么?
子类只能因为它们位于不同的单元中而无法访问私有方法.
我该如何避免这种情况?在我的情况下,我有3个子类,如果我将它们全部放在父类的单元中,结果将非常大.
如何创建一个从不同单元的父类继承私有方法的子类?
谢谢!
我想在listview中获取所有项目和子项目,但我得到的只是"TlistItem"
这是我的代码:
procedure TFrameAnalyzer.AddEntry(opcode:word;data:Array of byte;direction:byte);
begin
MessageBox(0,PChar(sListView1.Items.Item[4].ToString),'',0);
end;
Run Code Online (Sandbox Code Playgroud)
如何将项目的名称作为字符串以及它的2个子项目的名称?
我试图让我的代码尽可能简单,但我失败了.
这是我的代码:
class function TWS.WinsockSend(s:integer;buffer:pointer;size:word):boolean;
begin
dwError := Send(s,buffer,size,0);
// Debug
if(dwError = SOCKET_ERROR) then
begin
dwError := WSAGetLastError;
CloseSocket(s);
WSACleanup;
case (dwerror) of
//Case statement
else
LogToFile('Unhandled error: ' + IntToStr(dwError) + ' generated by WSASend');
end;
Exit(false);
end;
// if the size of the bytes sent isn't the expected one.
while(dwError <> size) do
dwError:= dwError + Send(s,Ptr(cardinal(buffer) + dwError),size-dwError,0);
Exit(true);
end;
Run Code Online (Sandbox Code Playgroud)
错误发生在
dwError:= dwError + Send(s,Ptr(cardinal(buffer) + dwError),size-dwError,0);
Run Code Online (Sandbox Code Playgroud)
错误是"常量对象不能作为var参数传递"
我知道我需要一个变量,但是如果没有再添加一行,我是不是可以做到这一点?