c#函数的返回值门类是否必须明确写出,或者有没有能返回两种类型的数据的方法
c#函数的返回值类型是否必须明确写出,或者有没有能返回两种类型的数据的方法
比如,
定义int a=5;
判断a是否大于10,如果大于10返回a的值,否则,不返回任何值。
public void?int GetIntOrNull()//这个地方返回值类型应该写什么啊,void还是int?
{
int a = 5;
if(a>10)
{
return a;
}
else
{
return null;//这里这么写对吗?
}
}
------解决思路----------------------
用可空类型就行了,Nullable<int>,也可以写作int?
public int? GetIntOrNull()//这个地方返回值类型应该写什么啊,void还是int?
{
int a = 5;
if(a>10)
{
return a;
}
else
{
return null;//这里这么写对吗?
}
}
调用
int? result = GetIntOrNull();
if(result.HasValue)
{
//有返回值a
Console.Write(result.Value);
}
else
{
返回空(无返回值)
}
------解决思路----------------------
实际上对于你这种情况,处理办法很多,你这样的想法只是在为难编译器而已。。。
比如我可以弄个函数判断a是否是有效数据(大于10)
int GetData(){return a;}
bool IsValid(){return a>10;}
当IsValid为true时就去用GetData取a的值否则不取;
或者想偷懒就用int?
不过个人并不推荐用int? ,看着很不爽
------解决思路----------------------
楼主,你的核心问题在这里:
1、void跟int不会同时出现,当然也不会跟其他类型同时出现,他只单独出现。
2、void说明方法没有返回值 void Fun(){}
3、把void换成具体类型,说明方法最后必须return该类型的值 int Fun(){return 0;}
4、类型后面加问号代表返回值可为空null
比如,
定义int a=5;
判断a是否大于10,如果大于10返回a的值,否则,不返回任何值。
public void?int GetIntOrNull()//这个地方返回值类型应该写什么啊,void还是int?
{
int a = 5;
if(a>10)
{
return a;
}
else
{
return null;//这里这么写对吗?
}
}
------解决思路----------------------
用可空类型就行了,Nullable<int>,也可以写作int?
public int? GetIntOrNull()//这个地方返回值类型应该写什么啊,void还是int?
{
int a = 5;
if(a>10)
{
return a;
}
else
{
return null;//这里这么写对吗?
}
}
调用
int? result = GetIntOrNull();
if(result.HasValue)
{
//有返回值a
Console.Write(result.Value);
}
else
{
返回空(无返回值)
}
------解决思路----------------------
实际上对于你这种情况,处理办法很多,你这样的想法只是在为难编译器而已。。。
比如我可以弄个函数判断a是否是有效数据(大于10)
int GetData(){return a;}
bool IsValid(){return a>10;}
当IsValid为true时就去用GetData取a的值否则不取;
或者想偷懒就用int?
static int a = 5;
static int? getData()
{
int? result = null;
if (a > 10)
result = a;
return result;
}
public static void Main (string[] args)
{
int? iret = null;
a = 5;
iret = getData ();
Console.WriteLine (iret==null?"Is null":iret+"");
a = 50;
iret = getData ();
Console.WriteLine (iret==null?"Is null":iret+"");
}
不过个人并不推荐用int? ,看着很不爽
------解决思路----------------------
楼主,你的核心问题在这里:
1、void跟int不会同时出现,当然也不会跟其他类型同时出现,他只单独出现。
2、void说明方法没有返回值 void Fun(){}
3、把void换成具体类型,说明方法最后必须return该类型的值 int Fun(){return 0;}
4、类型后面加问号代表返回值可为空null