C#中Windows Forms可用Strings.Right,控制台项目编译报错
解决C#项目中
Strings.Right不存在的问题 嘿,这个问题我之前也帮人排查过,其实核心原因不是你没加using Microsoft.VisualBasic;,而是你的项目没有引用Microsoft.VisualBasic程序集。
为什么原来的WinForms项目能用?
老的Windows Forms项目可能默认就引用了这个程序集(毕竟早期.NET框架里WinForms和VB的关联比较紧密),但新创建的WinForms项目或者控制台项目,默认是不会自动引用它的——哪怕你加了using语句,编译器找不到对应的程序集,还是会报错。
两种解决办法
1. 手动添加程序集引用
这是最直接的办法,步骤很简单:
- 在解决方案资源管理器里右键你的项目,选择「添加」→「引用」
- 在弹出的引用管理器里,切换到「框架」标签(如果是.NET Framework项目),或者在「程序集」分类里找到
Microsoft.VisualBasic - 勾选它,点击「确定」,之后再编译就不会报错了
2. 用C#原生代码替代Strings.Right
如果你不想依赖VB的程序集,其实可以自己实现类似的功能,更符合C#的编码习惯。比如写个字符串扩展方法:
public static class StringExtensions { public static string Right(this string input, int length) { if (string.IsNullOrEmpty(input)) return input; length = Math.Abs(length); return length >= input.Length ? input : input.Substring(input.Length - length); } }
之后你就可以像用Strings.Right一样调用:yourString.Right(5),完全不需要引用VB的库。
内容的提问来源于stack exchange,提问作者Doug Null
相关产品推荐
相关产品推荐

