2011-11-17 25 views
4

我是通过一些源代码阅读和整个看起来像一个函数的调用来:意义(字符串,3)

Right$(string, 3) 

我能理解这只是简单的字符串操作,但什么是$符号的含义?

回答

4

$在右函数的上下文中没有意义。在古代VB $权在新的VB功能是正确的,但你也可以使用右键$(为了向后兼容)

Right$("hasan", 3)Right("hasan", 3)在VB.NET

是相同的它仅仅是用来公约name字符串相关函数。

+0

好了 - 这样我就可以直接删除这个混乱的象征? –

+0

@ m.edmondson在最新的vb.net中你可以删除它 –

2

这是从旧的VB的遗产,这意味着它的一个字符串函数。这可能是为了向后兼容。

3

这是用来调用字符串函数Right()而不是变量函数Right()。

& -> Long 
% -> Integer 
# -> Double 
! -> Single 
@ -> Decimal 
$ -> String 

Right()函数采用“variant”作为输入,并返回“variant”。在字符串上使用时,这不是最佳选择。使用右$()接受一个字符串并返回一个字符串,因此速度更快。不知道这是真的还是在VB.net

+0

够正确,但不是这个问题的答案。这个问题是关于'$'在*功能*不*变量* – MarkJ

+0

感谢MarkJ,我编辑的职位:) –

+0

在VB.Net'Right'只存在一个字符串函数的意义。没有像VB6那样的变体版本(没有变体!)。 http://msdn.microsoft.com/en-us/library/dxs6hz0a(VS.90).aspx – MarkJ

0

wikipedia

的默认类型可以通过使用变量名特殊字符的后缀(#Double!Single覆盖特定声明, &对于Long,%对于Integer,$对于String@对于Currency) - 对于函数的返回类型也是如此。

在VB6中,右函数返回一个变体,所以在你的例子中它确保Right函数返回一个字符串。

+0

确实够了,但不是这个问题的答案。这个问题是关于'$'在*功能*不*变量* – MarkJ

+0

@MarkJ意义 - 真的不够我已经编辑我的职务 –

2

$符号来表示变量类型长,很长在VB6以前的函数和变量。他们从来没有被推荐的变量作为他们应该一直明确宣布象下面这样:

Dim myValue As String 

,而不是一个伟大实践中使用:

myValue$ = "" 

然而曾几何时,它是在Right()函数之类的某些函数上使用的良好做法,其中使用了变体类型。变体可以是任何类型的变量,从性能的角度来看,它们被认为是不好的。当使用字符串中包含右(),左(),MID()等函数最好还是要明确,并指出这是出于性能的考虑像下面的字符串:

Right$(myValue, 3) 

唯一的例外这种做法是使用Replace()函数。

现在,它被保存在.NET Microsoft.VisualBasic命名空间的唯一原因是为了溯往或VB6代码转换为VB.NET兼容性的原因。不需要使用表示您正在使用带有这些函数的字符串类型的符号来编写新代码。

希望这会有所帮助!