c# String属性和字符串字面值连接问题
本文关键字:字面值 连接 问题 字符串 String 属性 | 更新日期: 2023-09-27 18:01:42
我是c#的新手,我遇到了字符串连接问题。我希望有人能给我一个提示,帮助我解决这个问题。我已经在谷歌上广泛搜索了一个多星期,所以任何帮助/建议都会非常感激。
我已经为字符串属性创建了一个自定义的PathEditor。这个属性基本上允许用户输入一个在应用中使用的文件。如果输入的文件是正确的,它就会显示在属性单元格中。我要做的是,如果输入的文件不存在,则输出到属性单元格的错误消息-我在文件验证器中检查了这一点。这是字符串字面值的问题。
如果我使用:
return inputFile+"Error_";
这个工作正常,我得到输出文件123。在属性网格单元格中的txtError_。
如果我使用:
return "Error_"+inputFile;
我只得到没有"Error_"字面值的inputFile。因此,在属性网格单元格中显示file123.txt。
我已经检查和inputFile是一个字符串类型。你知道为什么会这样吗?
还有,是否有任何方法可以更改消息输出的字体和/或颜色?我试图改变属性网格单元格的背景,我知道这是不可能做到的。
谢谢。Z
更多代码:
[
Description("Enter or select the wave file. If no extension, or a non .wav extension, is specified, the default extension .wav will be added to the filename."),
GridCategory("Sound"),
Gui.Design.DisplayName ("Input Sound"),
PathEditor.OfdParamsAttribute("Wave files (*.wav)|*.wav", "Select Audio File"),
Editor(typeof(PathEditor), typeof(System.Drawing.Design.UITypeEditor))
]
public string InputWavefile
{
get { return System.IO.Path.GetFileName(inputtWavefile); }
set
{
if (value != inputWavefile) // inputWavefile has been changed
{
// validate the input stringg
_inputWavefile = FileValidation.ValidateFile(value);
// assign validated value
inputWavefile = _inputWavefile;
}
}
}
我的猜测是你在inputFile
的开头有一个奇怪的字符,这是令人困惑的事情-尝试在调试器中使用inputFile.ToCharArray()
查看它以获得字符数组。
字符串连接本身应该是好的-这是如何解释的值,这是问题,我怀疑…
我猜你的文件名看起来像这样,C:'Folder' filename .txt当你开始时。
在你的FileValidation.ValidateFile()方法中
return "Error_" + InputFileName;
现在看起来像这样:Error_C:'Folder'FileName.txt因此,当您运行下面这行代码时,
get { return System.IO.Path.GetFileName( _inputWavefile ); }
它去掉路径并只返回文件名, filename .txt。
即使文件名无效,您仍然在其上运行System.IO.Path.GetFileName()
假设这是winforms应用程序中的PropertyGrid
。那么它既不是字符串连接问题,也不是PropertyGrid
问题,可以通过以下代码片段证明。因此,您需要查看代码的其他地方: