小编Iva*_*nov的帖子

如何读取多个文本文件并将其保存到一个文本文件中?

在我的情况下,我有五个巨大的文本文件,我必须嵌入到一个文本文件中.

我尝试使用StreamReader(),但我不知道如何使它再读一个文件,我是否必须分配另一个变量?

展示一个例子将非常感激.

c# text file

1
推荐指数
1
解决办法
4735
查看次数

匿名类型作为方法参数

我第一次尝试使用匿名类型(测试):

    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)

提前致谢!

.net c# anonymous-types

1
推荐指数
1
解决办法
2861
查看次数

byte []到字符串转换似乎不像我想要的那样工作

我正在尝试在文本文件中显示字节数组的内容.

这是我的代码:

        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 []",为什么?

我正在尝试显示这个数组的内容,问题出在哪里?

c# text

1
推荐指数
1
解决办法
1757
查看次数

如何正确使用"this"来访问表单控件?

在我的情况下,我有面板,但要明确我将在我的例子中使用按钮.

我有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事件.我如何获得鼠标悬停的面板(或上例中的按钮)?

.net c# events winforms

1
推荐指数
1
解决办法
134
查看次数

如何声明指针(byte ^)?

我想声明一个外部函数,但我不能这样做.

这是我的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"类型?

delphi

1
推荐指数
1
解决办法
1957
查看次数

德尔福的抽象

如果我有子类,子类继承父类的所有方法,但是如何使用父类中子类的函数?抽象是什么?我该如何完成它?

我的代码:

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)

它编译文件,但我得到抽象异常.

delphi class

1
推荐指数
1
解决办法
514
查看次数

如何使子类的方法静态?

我的父类是一个表单(TParent),代码如下:

type
TChild = class(TParent)
private
  procedure Handle(sock:integer);static; //error
end;

implementation
Run Code Online (Sandbox Code Playgroud)

错误是“STATIC只能用于非虚拟方法”

有没有可能的方法来做到这一点?

如果没有,我可以将父类(TForm)设为静态吗?

TParent 类是用于 WSAAsyncSelect() 的表单,它是隐藏的(它不是主表单)。它仅用于消息循环。

delphi class

1
推荐指数
1
解决办法
1587
查看次数

为什么我的子类不继承父类的所有方法?

如果两个类都放在一个单元中 - 没有问题,子类从父类继承私有方法,但如果它们在不同的单元中,则类只能访问公共方法.为什么?

子类只能因为它们位于不同的单元中而无法访问私有方法.

我该如何避免这种情况?在我的情况下,我有3个子类,如果我将它们全部放在父类的单元中,结果将非常大.

如何创建一个从不同单元的父类继承私有方法的子类?

谢谢!

delphi class

1
推荐指数
1
解决办法
1815
查看次数

如何在列表视图中获取项目和子项目?

我想在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个子项目的名称?

delphi vcl listviewitem

1
推荐指数
1
解决办法
1万
查看次数

增加指针不会编译我计划的方式

我试图让我的代码尽可能简单,但我失败了.

这是我的代码:

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参数传递"

我知道我需要一个变量,但是如果没有再添加一行,我是不是可以做到这一点?

delphi pointers

1
推荐指数
1
解决办法
178
查看次数

标签 统计

delphi ×6

c# ×4

class ×3

.net ×2

text ×2

anonymous-types ×1

events ×1

file ×1

listviewitem ×1

pointers ×1

vcl ×1

winforms ×1