总结——有关Visual C#.NET 中设计的各类@符号的使用

本文介绍了在Visual C#.NET中学习.NET时遇到的@符号在存储过程中的使用,包括参数定义、默认值和输出参数的详细说明,并提供了一个计算订单总金额的存储过程示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开始 进入.NET 的学习,我决定放弃C++(也不是说放弃,大概以后还是会用到的吧  >_<),开始学习C#.这段时间以来,开了本Visual C#.NET的书,发现了好多@符号,有点郁闷,就自己找了些资料,总结下哈,有任何错误或遗漏之处,大家帮忙指出来哈,先谢啦.

 

 
一 字符串中的用法
  字符@表示,其后的字符串是个“逐字字符串”(verbatim string)。
  @只能对字符串常量作用。
1.文件路径
 string s_FilePath ="C://Program Files//Microsoft.NET//test.txt";
相当于
 
对于逐字字符串字面变量(verbatim
string literal),我们不再需要使用“转义序列”就可以指定反斜线之类的特殊字符.@的这个特点使得在表示文件路径时很方便.
如:
string str = @"C:Test.txt";
 
2. 另外一点,用@表示的字符串能够跨越数行.这数行之内的空白字符(White Space)都会保留在字符串里.
这样便能允许存储和生成带有格式的文本块.
如:
string strText = @"Line1
Line2
Line3";
有意思的是如果在VS.NET2003中当你输入完第一行(
string strText = @"Line1)换行后,光标会自动到第二行最开头 ^_^.很智能化、人性化的判断.

3. 不知道大家在最初看到@的功能时有没有想,如果“转义序列”()在字符串中“失效”,那么想包含一个双引号("),怎么办?我找到了答案.
方法很简单.在双引号之前再加一个双引号即可.
如:
string str = @"""Great!""Said Allen Lee";
 
4.防止字符串中将“/”解析为转义字符
eg.
string strConnection="Provider=Microsoft.Jet.OleDb.4.0;";
strConnection+=@"Data Source=C:BegASPNETNorthwind.mdb";

"+="后面的"@"符号是防止将后面字符串中的"/"解析为转义字符.

 二 标识符中的用法
  在 C# 规范中, @ 可以作为标识符(类名、变量名、方法名等)的第一个字符,以允许C# 中保留关键字作为自己定义的标识符。
  如
class @class
  {
  public static void @static(bool @bool) {
  if (@bool)
  System.Console.WriteLine("true");
  else
  System.Console.WriteLine("false");
  }
  }
  class Class1
  {
  static void M() {
  clu0061ss.stu0061tic(true);
  }
  }
 注意,@ 虽然出现在标识符中,但不作为标识符本身的一部分。
  因此,以上示例,定义了一个名为 class 的类,并包含一个名为 static 的方法,以及一个参数名为了 bool 的形参。
  这样,对于跨语言的移植带来了便利。因为,某个单词在 C# 中作为保留关键字,但是在其他语言中也许不是。
 
三.在C#.NET中有关SQL SERVER存储过程里的用法

存储过程的书写格

CREATE PROCEDURE
[拥有者.]存储过程名[;程序编号]
[(
参数#1,…参数
#1024)]
[WITH
{RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}
]
[FOR REPLICATION]
AS
程序行


其中存储过程名不能超过128个字。每个存储过程中最多设定1024个参数

(SQL Server 7.0
以上版本),参数的使用方法如下
:

@
参数名数据类型 [VARYING] [=内定值
] [OUTPUT]

每个参数名前要有一个“@”符号,每一个存储过程的参数仅为该程序内部使用,参数的类型除了IMAGE外,其他SQL Server所支持的数据类型都可使用。
[=
内定值]相当于我们在建立数据库时设定一个字段的默认值,这里是为这个参数设定默认值。[OUTPUT]是用来指定该参数是既有输入又有输出值的,也就是在调用了这个存储过程时,如果所指定的参数值是我们需要输入的参数,同时也需要在结果中输出的,则该项必须为OUTPUT,而如果只是做输出参数用,可以用CURSOR,同时在使用该参数时,必须指定VARYINGOUTPUT
这两个语句

例子
:
CREATE PROCEDURE order_tot_amt @o_id int,@p_tot int output AS
SELECT @p_tot = sum(Unitprice*Quantity)
FROM orderdetails
WHERE ordered=@o_id

子说明
:
该例子是建立一个简单的存储过程order_tot_amt,这个存储过程根据用户输入的定单ID号码(@o_id),由定单明细表(orderdetails)中计算该定单销售总额[单价(Unitprice)*数量(Quantity)],这一金额通过@p_tot这一参数输出给调用这一存储过程的程序

这次总结就这么多哈  希望对你有帮助~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值