C#方法的形参能赋默认值吗?

private void Send( string smtpAddress , string userName , string password , string to , string title = "test", string content = "123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 ")
看一下儿这个方法声明,编译过不去,我怎样给它赋默认值?C++介绍说函数的形参可以从右向左赋默认值,C#行不行呀?不行的话我只好重载了。

c++可以给函数参数添加默认值,但是c#不行,你只能用个重载函数或者在开头做判断:
private void Send( string smtpAddress , string userName , string password , string to , string title ,string content)
{
if (null == content || "" == content)
{
content = "123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 ";
}
// ...
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-16
不能这样写的,你这样写:
private void Send( string smtpAddress , string userName , string password , string to , string title ,string content)
{
title ="test",;
content ="123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 ";
}

C#方法的形参能赋默认值吗?
c++可以给函数参数添加默认值,但是c#不行,你只能用个重载函数或者在开头做判断:private void Send( string smtpAddress , string userName , string password , string to , string title ,string content){ if (null == content || "" == content){ content = "123456789 123456789 123456789 1234...

C# 的out问题
因此,要使用ref形参,需要赋予实参一个哑元值,从而可以满足这一约束。C#中out形参就可以解决此类问题。out形参类似于ref形参,但它只能用来将值从方法中传出。在调用之前,并不需要为out形参的变量赋予初始值。在方法中,out形参总是被认为是未赋值的,但在方法结束前必须赋于形参一个值。因此,当调用...

c# 中调用方法能调用方法中的变量值吗?举个例子
说的是跟c语音里面的形参或实参这个意思吧。形参自然不会改变参数的值。如果要改变值类型的参数,如int类型,string类型等基本类型,则用ref引用。如 fun_add(ref int index),则对index参数的修改,也会修改调用时传入的参数的值。另外如果是 引用类型,如定义个类book,然后以book类的实例b1为参数,...

C# ref string 参数应该填什么?
随便给一个默认值就可以了。一般情况下,string类型的就给个双引号的空就可以了。因为在catch中捕捉到异常后,就会给它赋值,覆盖初始值。所有,ref类型的初始值没有什么意思

在C#中什么是形参、什么是实参?
其他语言都是一样的吧 main(){ int a=1;fun(a); \/\/ 这里的a ,传到fun函数里,在这里,这个a 是实参 } fun( int b){ b=b+1; \/\/这里的b ,是函数里面定义的,是形式参数,它接受调用时实参的值。}

c# 构造函数中如何给数组赋值
class A { int s[10];public: A(){ for(int i=0i<10;i++)s[i]=0;\/\/默认构造给数组赋初值为零 } A(int s1[]){ for(int i=0i<10;i++)s[i]=s1[i]; \/\/有参构造给数组赋值。} };

C#中方法参数传递机制
(形参:在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的存储单元.只有在发生函数调用时,函数中形参才被分配内存单元.在调用结束后,形参所占的内存单元也被释放。调用时将实参的值赋绐形参);引用参数与输出参数中,实参在堆栈中分配空间。当实参传递给形参时,会将地址传递给形参,即传送...

c#传递引用对象作为参数的时候就没有必要用ref关键字,对吗
static void Main(string[] args){ Test a = new Test();a.Value = 1;Test b = a;Change(b);\/\/a.value值为1,b.value值为1;形参重新赋值没有影响到实参,方法结束后形参的生命周期也随之结束 b.Value = 2;\/\/a.value值为2,b.value值为2;a和b指向同一地址 Change(ref b);\/\/a....

c#的形参和实参有什么用
2、实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值。3、实参和形参在数量上,类型上、顺序上应严格一致,否则就会发生类型不匹配的错误。4、在一般传值调用的机制中只能...

关于c#中泛型的问题和default关键字,谢谢!
如,int a=default(int);则a=0;如果T类型是引用类型的话,则初始化为null 你程序中出现的问题是,泛型中的T仅仅是个占位符,在程序JIT编译的时候,根据你传入的实参类型进行填充 所以,假如你在调用的时候,T的类型是个值类型的话,像你这样直接赋值null显然就会出错 可以给泛型假如约束保证其正常...

相似回答