没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|其它|编辑:郝浩|2004-08-04 09:08:00.000|阅读 1869 次
概述:
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
变量和参数
变量扮演存储的角色。每个变量有一个类型,这个类型决定那些数据可以被存储在这个变量中。局部变量是在方法、属性或索引中声明的变量。一个局部变量通常通过指定的类型名称和说明符来定义,它指定了变量名称和一个任意的初始值.
如下:
int a;
int b = 1;
但也有可能一个局部变量声明包括多个说明符。对于a和b的声明可以写成:
int a, b = 1;
一个变量在它的数据可以使用前,必须被明确分配数据(§错误!未找到引用源。)。例子
class Test
{
static void Main() {
int a;
int b = 1;
int c = a + b;
...
}
}
是非法的,因为试图在一个变量被分配数据前就试图使用它。
域是一种变量,它与某个类或结构或者某个类或结构的实例相关联。一个用static修饰符声明的域定义了一个静态变量,而不用这种修饰符声明的域定义一个实例变量。例子
using System.Data;
class Employee
{
private static DataSet ds;
public string Name;
public decimal Salary;
...
}
介绍了Employee类,它有一个私有静态变量和两个公用实例变量。
形式参数声明同样定义变量。这里有四种类型的参数:数据参数,引用参数,输出参数和参量(param)参数。
数据参数用来做“入”参数传递,一个自变量的数据通过它传递到方法中,而对参数的修改不会影响到原始的自变量。数据参数指向它自己在存储器中的位置,它与变量存储位置有明确的区分。次存储位置通过把拷贝相应变量的数据来初始化。
例子:
using System;
class Test {
static void F(int p) {
Console.WriteLine("p = {0}", p);
p++;
}
static void Main() {
int a = 1;
Console.WriteLine("pre: a = {0}", a);
F(a);
Console.WriteLine("post: a = {0}", a);
}
}
说明了一个方法F,它有一个名为p的数据参数。这个例子产生下面的输出:
pre: a = 1
p = 1
post: a = 1
甚至数据p被改动。
引用参数是用作“通过引用”参数传递,这里,参数表现为调用者提供变量的别名。引用参数自己并不定义存储位置,而是指向相应变量的存储位置。对引用参数的修改马上会直接地影响到相应的变量。引用参数用一个ref修饰符来声明。
例子:
using System;
class Test {
static void Swap(ref int a, ref int b) {
int t = a;
a = b;
b = t;
}
static void Main() {
int x = 1;
int y = 2;
Console.WriteLine("pre: x = {0}, y = {1}", x, y);
Swap(ref x, ref y);
Console.WriteLine("post: x = {0}, y = {1}", x, y);
}
}
说明了有两个引用参数的方法Swap。程序的输出如下:
pre: x = 1, y = 2
post: x = 2, y = 1
关键词ref必须在形式参数中声明并且在其中使用。在call位置使用ref要求对参数特殊注意,这样,一个开发人员在阅读此段代码的时候就可以理解到,由于此调用变量将发生变化。
除了调用者所提供变量的初始化数据不重要以外,输出参数与引用参数相似。用一个out修饰符来声明一个输出参数。
例子:
using System;
class Test {
static void Divide(int a, int b, out int result, out int remainder) {
result = a / b;
remainder = a % b;
}
static void Main() {
for (int i = 1; i < 10; i++)
for (int j = 1; j < 10; j++) {
int ans, r;
Divide(i, j, out ans, out r);
Console.WriteLine("{0} / {1} = {2}r{3}", i, j, ans, r);
}
}
}
介绍了一个包括两个输出参数的Divide方法,一个是除的结果,另外一个是余数。
对于数据,引用和输出参数在调用者提供的变量和代表它们的参数间有一个一一对应的关系。参量参数可以可以允许多对一的关系:多个变量可以由一个参量参数来代表。换句话说参量参数可以接受长度变化的变量列表。
参量参数用一个params修饰符来声明。对于一个给定的方法,只能有一个参量参数,并且通常指定为最后一个参数。参量参数通常是一维数组类型。调用程序可以只是传送这种数组类型的一个单独的变量,也可以是这种数组类型中,于数组元素类型相同的任意多个变量。
例如,下面的例子
using System;
class Test
{
static void F(params int[] args) {
Console.WriteLine("# of arguments: {0}", args.Length);
for (int i = 0; i < args.Length; i++)
Console.WriteLine("\targs[{0}] = {1}", i, args[i]);
}
static void Main() {
F();
F(1);
F(1, 2);
F(1, 2, 3);
F(new int[] {1, 2, 3, 4});
}
}
介绍了一个F方法,它有可变数量的int变量和许多对这个方法的调用。输出是:
# of arguments: 0
# of arguments: 1
args[0] = 1
# of arguments: 2
args[0] = 1
args[1] = 2
# of arguments: 3
args[0] = 1
args[1] = 2
args[2] = 3
# of arguments: 4
args[0] = 1
args[1] = 2
args[2] = 3
args[3] = 4
在介绍中出现的大部分例子都使用Console类中的Writeline方法。如例子中完全用参量参数进行变量替换。
int a = 1, b = 2;
Console.WriteLine("a = {0}, b = {1}", a, b);
WriteLine方法提供了多种传递少量变量的方法,而其中一种使用了参量参数。
namespace System
{
public class Console
{
public static void WriteLine(string s) {...}
public static void WriteLine(string s, object a) {...}
public static void WriteLine(string s, object a, object b) {...}
...
public static void WriteLine(string s, params object[] args) {...}
}
}
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号