- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
考虑:
function x_StrZero(N: Double; W: Integer; D: Integer = 0): String;
var S : String;
begin
Str(N:W:D,S);
S := Trim(S);
这给出了 W1057 隐式字符串从 'ShortString' 到 'string' 的转换
procedure Str(const X [: Width [:Decimals]]; var S: String);
还有
Notes: However, on using this procedure, the compiler may issue a warning: W1057 Implicit string cast from '%s' to '%s' (Delphi).
为什么会这样?
我想阻止这种丑陋的解决方法:
function x_StrZero(N: Double; W: Integer; D: Integer = 0): String;
var
S : String;
SS : ShortString;
begin
Str(N:W:D,SS);
S := Trim(String(SS));
我已阅读 Why does Delphi warn when assigning ShortString to string?但这并不能回答这个问题。
最佳答案
Str(N:W:D,S);
编译为
S := System._Str2Ext(N, W, D);
其中 System._Str2Ext
是一个返回类型为 ShortString
的函数。它在分配给 S
时被转换为 string
。该警告虽然不容易阅读,但却是正确的,此时存在隐式转换。因此,要么通过避免 Str
来重写代码,使那里没有隐式转换,要么关闭警告,要么忽略警告。
关于delphi - 为什么 Str() 将 "W1057 Implicit string cast from ' ShortString' 给 'string' "?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12493021/
像这样的记录并不罕见: TAddress = record Address: string[50]; City : string[20]; State : string[2];
我想要一个 Unicode 字符串类型,并将字符串直接存储在变量的地址处,就像(仅限 Ansi)ShortString 类型的情况一样。 我的意思是,如果我声明一个 S: ShortString 并让
我正在将一些遗留代码转换为 Delphi 2010。 有相当多的旧 ShortString,例如 string[25] 为什么分配如下: type S: String; ShortS: Str
我的客户刚刚给我发送了一个 delphi dll 用于我的 asp.net 应用程序,下面是 dll 的签名: function GerarChave(pChave: ShortString; pDa
考虑: function x_StrZero(N: Double; W: Integer; D: Integer = 0): String; var S : String; begin Str(N
我是一名优秀的程序员,十分优秀!