一个方法能不能返回两种类型的数据

aqandy 2004-10-25 10:58:10
一个方法能不能返回两种类型的数据
...全文
144 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
NetFair 2004-10-26
  • 打赏
  • 举报
回复
我有一个方法,返回一个字符串,该字符串其实是有两个值构成的,如'A,2',但是,这种方法只能适合用简单的数据类型,如果返回结构类型、或类就没有办法了。仅供参考!
echoxue 2004-10-25
  • 打赏
  • 举报
回复
虫子写的比较透彻,就是方法中用(ByRef x,ByRef y)参数,一些值就相应的改变,相当于返回了不同的值。
虫子写的很经典,怪不得两星。

有机会多多交流。
lxcc 2004-10-25
  • 打赏
  • 举报
回复
一个方法能不能返回两种类型的数据
//用ref 或者 out 带回参数值,下面例子是WinForm的,但是原理是一样的

private void button1_Click(object sender, System.EventArgs e)
{
string aa ="";
int bb=0;

getTwoReturnValue(ref aa, ref bb);

MessageBox.Show(aa);
MessageBox.Show(bb.ToString());
}

private void getTwoReturnValue(ref string a ,ref int b)
{
a="lxcc";
b=1;
}

echoxue 2004-10-25
  • 打赏
  • 举报
回复
一般可以,但具体的要看你如何用。
我用过一个调用,不是返回值,而是改变值。例如:
Dim srg075 As String = myShoboCom.TrimEx(MyDataRow("SRG_075"))
If (srg075.Equals("")) Then
Else
TeaCodeText = Me.WEBTAB.FindControl("Tab4_TeaCode6")
TeaNameText = Me.WEBTAB.FindControl("Tab4_TeaName6")
If (srg075.Equals("999999") Or srg075.Equals("888888")) Then
TeaCodeText.Text = srg075
Else
If (callTeaName(srg075, TeaCodeText, TeaNameText) = False) Then
Return False
End If
End If
End If

TeaCodeText,TeaNameText为两个TEXT,但我调用了此函数
'get teaName data excute
Private Function callTeaName(ByVal teaCode As String, ByRef teaCodeText As TextBox, ByRef teaNameText As TextBox) As Boolean
Dim MyDataResult As DataSet
Dim MyDataRow As DataRow
Dim StrSql, strMessage As String
Dim DBErr As String
StrSql = getTeaNameSql(teaCode)
Try
DBErr = MyDataAccess.Query(StrSql, MyDataResult)
'DB傾僋僙僗丂惓忢
If DBErr = "0000" Then
' get the data and put into TAB
Dim MyDataTable As New DataTable()
MyDataTable = MyDataResult.Tables(0)
If (MyDataTable.Rows.Count > 0) Then
'儗僐乕僪偑偁傞応崌丄僨乕僞傪弌椡偡傞
For Each MyDataRow In MyDataTable.Rows
teaCodeText.Text = myShoboCom.AddZero(myShoboCom.TrimEx(MyDataRow("SMC_001")), 6)
teaNameText.Text = myShoboCom.TrimEx(MyDataRow("SMC_003"))
Next MyDataRow
Else
strMessage = myShoboCom.getHashValue(myErrSession, "024") '島巘柤専嶕偺忣曬晄惓偱偡丅
Page.RegisterStartupScript("KOU_002_18", "<script>alert('" + strMessage + "');</script>")
Return False
End If
Else
Page.RegisterStartupScript("KOU_002_19", "<script>alert('" + DBErr + "');</script>")
Return False
End If
Catch ex As Exception
Console.WriteLine(ex.ToString())
Return False
End Try
Return True
End Function
triout 2004-10-25
  • 打赏
  • 举报
回复
当然可以,这就是重载。

不过,还要求参数有所不同,否则是不允许的。

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧