日期:2014-05-18  浏览次数:20948 次

使用Void类型方法有Return返回值的问题
下面的一种用法,Void方法,可以有Rerun返回值,而且编译时也是可以通过。
看别人的代码时发现的,自己没有用过。
查了MSDN上的说明,也没有提到这种用法,MSDN原话:“如果返回类型为 void,则可使用没有值的 return 语句来停止方法的执行。如果没有 return 关键字,方法执行到代码块末尾时即会停止。具有非 void 返回类型的方法才能使用 return 关键字返回值。”
C# code
        private void initControls()
        {
            if (RightsManagement.isUserAllowed("mkt_team") == false)
            {
                LabelMsg.CssClass = "ErrorMessageStyle";
                LabelMsg.Text = Resources.CR.AccessNotAllowed;
                LabelMsg.Visible = true;
                UpdatePanelMsg.Update();
                PanelPage.Visible = false;
            }
            else
            {
                /*** Sets the VarSession ***/
                DataTable tableSite = new DataTable();
                tableSite = manageSessionVarTableSite();  
            }
        }

        private void manageSessionVarTableSite()
        {
            if (SessionManagement.GetVarSession(WebCtrlUtil.GetHiddenFieldWinIndex(this), "TableSite") == null)
            {
                DataTable tableSite = new DataTable();
                SiteCtrl.getSiteList(tableSite);
                tableSite.PrimaryKey = new DataColumn[] { tableSite.Columns["id_site"] };
                SessionManagement.SetVarSession(WebCtrlUtil.GetHiddenFieldWinIndex(this), "TableSite", tableSite);

                return tableSite;
            }
            else
            {
                return (DataTable)SessionManagement.GetVarSession(WebCtrlUtil.GetHiddenFieldWinIndex(this), "TableSite");
            }
        }


------解决方案--------------------
void只能用return后面不能有值
void sub1{return;}
------解决方案--------------------
学习了》。。。。。。。。。
------解决方案--------------------
public void(out string returnValue)
{
//
}
------解决方案--------------------
研究的精神值得鼓励和学习,路过