当我想要使用类时,以下方法之间的调用是不明确的

时间:2014-08-12 08:13:35

标签: c# asp.net class telerik

我在ASP.NET webform页面中定义了一个类:

namespace AdsignInt_V0._2.AdvertiserZone.ChartReports
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            List<string> XAxisItems = new List<string>();
            XAxisItems.Add("Monday");
            XAxisItems.Add("Tuesday");
            XAxisItems.Add("Wednesday");
            XAxisItems.Add("Thursday");
            XAxisItems.Add("Friday");
            XAxisItems.Add("Saturday");
            XAxisItems.Add("Sunday");

            SeriesItem series1 = new SeriesItem("Week 1", Color.Red);
            for (int i = 1; i < 8; i++)
                series1.Items.Add(i * 10);

            SeriesItem series2 = new SeriesItem("Week 2", Color.Blue);
            for (int i = 1; i < 8; i++)
                series2.Items.Add(100 - i * 10);

            List<SeriesItem> SeriesItems = new List<SeriesItem>();
            SeriesItems.Add(series1);
            SeriesItems.Add(series2);

            makeChart(XAxisItems, SeriesItems);
        }

        void makeChart(List<string> XAxisItems, List<SeriesItem> SeriesItems)
        {
            MyChart.Appearance.FillStyle.BackgroundColor = Color.White;

            MyChart.ChartTitle.Text = "Server CPU Load By Days";
            MyChart.ChartTitle.Appearance.Align = ChartTitleAlign.Center;
            MyChart.ChartTitle.Appearance.BackgroundColor = Color.White;
            MyChart.ChartTitle.Appearance.Position = ChartTitlePosition.Top;

            MyChart.Legend.Appearance.BackgroundColor = Color.White;
            MyChart.Legend.Appearance.Position = ChartLegendPosition.Bottom;

            MyChart.PlotArea.Appearance.FillStyle.BackgroundColor = Color.White;

            {   //XAxis
                MyChart.PlotArea.XAxis.AxisCrossingValue = 0;
                MyChart.PlotArea.XAxis.Color = Color.Black;
                MyChart.PlotArea.XAxis.MajorTickType = TickType.Outside;
                MyChart.PlotArea.XAxis.MinorTickType = TickType.Outside;
                MyChart.PlotArea.XAxis.Reversed = false;

                MyChart.PlotArea.XAxis.LabelsAppearance.DataFormatString = "{0}";
                MyChart.PlotArea.XAxis.LabelsAppearance.RotationAngle = 0;
                MyChart.PlotArea.XAxis.LabelsAppearance.Skip = 0;
                MyChart.PlotArea.XAxis.LabelsAppearance.Step = 1;

                MyChart.PlotArea.XAxis.MajorGridLines.Color = Color.Gray;
                MyChart.PlotArea.XAxis.MinorGridLines.Color = Color.Gray;

                MyChart.PlotArea.XAxis.TitleAppearance.Text = "Days";
                MyChart.PlotArea.XAxis.TitleAppearance.Position = AxisTitlePosition.Center;
                MyChart.PlotArea.XAxis.TitleAppearance.RotationAngle = 0;

                foreach (string item in XAxisItems)
                    MyChart.PlotArea.XAxis.Items.Add(item);
            }

            {   //YAxis
                MyChart.PlotArea.YAxis.MinValue = 0;
                MyChart.PlotArea.YAxis.MaxValue = 100;
                MyChart.PlotArea.YAxis.Step = 25;

                MyChart.PlotArea.YAxis.AxisCrossingValue = 0;
                MyChart.PlotArea.YAxis.Color = Color.Black;
                MyChart.PlotArea.YAxis.MajorTickType = TickType.Outside;
                MyChart.PlotArea.YAxis.MinorTickType = TickType.Outside;
                MyChart.PlotArea.YAxis.Reversed = false;

                MyChart.PlotArea.YAxis.LabelsAppearance.DataFormatString = "{0}%";
                MyChart.PlotArea.YAxis.LabelsAppearance.RotationAngle = 0;
                MyChart.PlotArea.YAxis.LabelsAppearance.Skip = 0;
                MyChart.PlotArea.YAxis.LabelsAppearance.Step = 1;

                MyChart.PlotArea.YAxis.MajorGridLines.Color = Color.Gray;
                MyChart.PlotArea.YAxis.MinorGridLines.Color = Color.Gray;

                MyChart.PlotArea.YAxis.TitleAppearance.Text = "CPU Load";
                MyChart.PlotArea.YAxis.TitleAppearance.Position = AxisTitlePosition.Center;
                MyChart.PlotArea.YAxis.TitleAppearance.RotationAngle = 0;
            }

            foreach (SeriesItem seriesItem in SeriesItems)
            {
                LineSeries lineSeries = new LineSeries();
                lineSeries.Name = seriesItem.name;
                lineSeries.Appearance.FillStyle.BackgroundColor = seriesItem.backgroundColor;
                lineSeries.LabelsAppearance.DataFormatString = seriesItem.dataFormatString;
                lineSeries.LabelsAppearance.Position = seriesItem.position;
                lineSeries.LineAppearance.Width = seriesItem.lineWidth;
                lineSeries.MarkersAppearance.BackgroundColor = seriesItem.markerBackgroundColor;
                lineSeries.MarkersAppearance.MarkersType = seriesItem.markerType;
                lineSeries.MarkersAppearance.Size = seriesItem.markerSize;
                lineSeries.MarkersAppearance.BorderColor = seriesItem.markerBorderColor;
                lineSeries.TooltipsAppearance.BackgroundColor = seriesItem.tooltipBackgroundColor;
                lineSeries.TooltipsAppearance.DataFormatString = seriesItem.tooltipDataFormatString;

                foreach (decimal value in seriesItem.Items)
                    lineSeries.Items.Add(value);

                MyChart.PlotArea.Series.Add(lineSeries);
            }

        }
    }
    public class SeriesItem
    {
        public string name;
        public Color backgroundColor;
        public string dataFormatString;
        public LineAndScatterLabelsPosition position;
        public int lineWidth;
        public Color markerBackgroundColor;
        public MarkersType markerType;
        public int markerSize;
        public Color markerBorderColor;
        public Color tooltipBackgroundColor;
        public string tooltipDataFormatString;
        public List<decimal> Items;

        public SeriesItem(string Name, Color color)
        {
            name = Name;
            backgroundColor = color;
            dataFormatString = "{0}%";
            position = LineAndScatterLabelsPosition.Above;
            lineWidth = 1;
            markerBackgroundColor = Color.Yellow;
            markerType = MarkersType.Circle;
            markerSize = 8;
            markerBorderColor = Color.Green;
            tooltipBackgroundColor = Color.White;
            tooltipDataFormatString = "{0}%";

            Items = new List<decimal>();
        }
    }
}

但是当我想使用该类中的方法时,我有一个错误告诉我:

  

以下方法或属性之间的调用不明确:   AdsignInt_V0._2.AdvertiserZone.ChartReports.SeriesItem.SeriesItem(string,System.Drawing.Color)   和
  AdsignInt_V0._2.AdvertiserZone.ChartReports.SeriesItem.SeriesItem(string,System.Drawing.Color)   C:\ Users \ my media \ Documents \ Visual Studio 2013 \ Projects \ AdsignInt_V0.2 \ AdsignInt_V0.2 \ AdvertiserZone \ ChartReports \ WebForm1.aspx.cs 27 34 AdsignInt_V0.2

2 个答案:

答案 0 :(得分:1)

尝试清理解决方案和临时ASP文件,然后重建。最有可能的是,最后一个构建具有指向相同类名的程序集。

此外,SeriesItem类是用于定义RadHtmlChart系列项的旧类,因此您可能希望更改其名称以避免任何冲突。系列项目的当前类列于此处:http://www.telerik.com/help/aspnet-ajax/htmlchart-server-side-api-configure-series-items.html

旁注 - 我不认为你需要为每个系列项目添加一个新系列,所以你可能想在系列创建之后为系列项目设置foreach循环。

答案 1 :(得分:0)

我在顶部定义de System.Drawing。

using Draw = System.Drawing;

如果我需要使用System.Drawing,我将它与Draw一起使用。

样品:

public SeriesItem(string Name, Draw.Color color)
{
    name = Name;
    backgroundColor = color;
    dataFormatString = "{0}%";
    position = LineAndScatterLabelsPosition.Above;
    lineWidth = 1;
    markerBackgroundColor = Draw.Color.Yellow;
    markerType = MarkersType.Circle;
    markerSize = 8;
    markerBorderColor = Draw.Color.Green;
    tooltipBackgroundColor = Draw.Color.White;
    tooltipDataFormatString = "{0}%";

    Items = new List<decimal>();
}