2011-05-09 86 views
0

我有MVP的下面一個簡單的演示:MVP類型轉換的問題

public partial class _Default : System.Web.UI.Page, IView 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 

    #region IView Members 

    public string RadiusText 
    { 
     get { return TextRadius.Text; } 
     set { TextRadius.Text = value; } 
    } 

    public string ResultText 
    { 
     get { return LabelResult.Text; } 
     set { LabelResult.Text = value; } 
    } 

    #endregion 
    protected void ButtonResult_Click(object sender, EventArgs e) 
    { 
     CPresenter presenter = new CPresenter(this); 
     presenter.CalculateCircleArea(); 
    } 
} 

/// <summary> 
/// interface view 1 
/// </summary> 
public interface ICircleModel 
{ 
    double getArea(double radius); 
} 

public class CModel : ICircleModel 
{ 
    public CModel() { } 

    #region ICircleModel Members 

    public double getArea(double radius) 
    { 
     return Math.PI * radius * radius; 
    } 

    #endregion 
} 

/// <summary> 
/// interface view 2 
/// </summary> 
public interface IView 
{ 
    string RadiusText { get; set; } 
    string ResultText { get; set; } 
} 


/// <summary> 
/// Summary description for Presenter 
/// </summary> 
public class CPresenter 
{ 
    IView mview; 
    public CPresenter(IView view) 
    { 
     mview = view; 
    } 
    public double CalculateCircleArea() 
    { 
     CModel model = new CModel(); 
     mview.ResultText = model.getArea(Double.Parse(mview.RadiusText)).ToString(); 
     return mview.ResultText.ToString(); 
    } 
} 

錯誤即時得到的是:

錯誤1無法隱式轉換類型「字符串」到「雙」

回答

1

你當方法簽名將double定義爲retrurn參數時,CPresenter類中的CalculateCircleArea()方法將返回一個字符串。將返回參數更改爲字符串或從方法內返回double。

+0

謝謝,我明白了。 – sobsinha 2011-05-09 10:24:33