gpt4 book ai didi

c# - Delphi 到 C# 的转换

转载 作者:太空宇宙 更新时间:2023-11-03 19:52:35 26 4
gpt4 key购买 nike

我需要将 Delphi 程序转换为 C#,但我遇到了“WITH”问题我无法为此找到正确的转换。任何帮助都会很棒。我附上了我遇到问题的片段。QueryLchistory 是 sql 查询,我还删除了在 while 循环中执行的语句。

with QueryLcHistory do begin
First;
RemainingMargin := 0;

while (not Eof) and Another test Case
do begin
//Statements #1
Next;
end;

while (not Eof ) and Another test Case2
do begin
// Statements #2
Next;
end;
end; {with}

最佳答案

with 唯一做的就是在其作用域的命名空间中提升其操作数。
这意味着编译器将 QueryLcHistory. 前缀添加到此前缀有效的每个标识符。
这种特殊处理仅发生在 with 语句的 begin-end block 内,之后一切照常。

因为 C# 没有 with 语句,您必须先在没有 with 语句的情况下在 Delphi 中创建工作代码,然后才能将其转换为 C# 代码。

要删除 with,请按照以下步骤操作。

  1. 删除,离开开始
    {with QueryLcHistory do} begin

  2. 使用 with 语句中的内容为每个标识符添加前缀。

    QueryLcHistory.First;
    QueryLcHistory.RemainingMargin := 0;//等等

  3. 编译

  4. 从编译器给出错误的所有标识符中删除 QueryLcHistory

  5. 确保新代码的行为方式与旧代码相同。

现在您已经获得了应该很容易转换为 C# 的简单代码。

同为恶
您如何知道哪些语句受 with 影响,哪些不受影响?
好吧,除非你已经记住了 QueryLcHistory 的完整接口(interface)(或其中的任何内容),否则你无法知道。
没有 with 范围是明确的并且在你面前。使用 with 是含蓄和阴险的。永远不要使用 with,因为很难分辨哪些语句在 with 语句的范围内,哪些语句与其他内容相关。

关于c# - Delphi 到 C# 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37003253/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com