在代码中遇到错误 [英] Strucking with error in code

查看:53
本文介绍了在代码中遇到错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述







我在以下代码中遇到错误:



我尝试了很多来解决这个问题。但我不能。



有谁可以帮我解决这个问题?

Hi,


I am strucking with a error in the following code:

I tried a lot to solve the problem. But I could not.

Can anyone please help me in solving this?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Text.RegularExpressions;

namespace SCANLA
{
    class Program
    {
      
        public static CANBusDetails CANBusRedDetails = null; 
        public static CANBusDetails CANBusYellowDetails = null;
        public static CANBusDetails CANBusGreenDetails = null;
        public static CANBusDetails CANBusOrangeDetails = null;
       
        static void Main()
        {
            
           
            Bar();
        }



        void Bar()
        {


            string[] fileContents = null;
            List<canbusmsgidmap> CANMsgIdList = new List<canbusmsgidmap>();


            String seclogPath1 = @"\\global.scd.scania.com\home\se\121\valhbc\Desktop\log files\1302_P3\logg2.asc";



            fileContents = File.ReadAllLines(seclogPath1);
            for (int Index = 0; Index < fileContents.Length; Index++)
            {
                string CANMsgId = string.Empty;
                string[] spaceSeperator = new string[] { " " };
                string[] lineWords = (fileContents[Index].Trim()).Split(spaceSeperator, StringSplitOptions.RemoveEmptyEntries);


                if (lineWords.Length < (2 + 1))
                    continue;


                if (lineWords[2].EndsWith("x"))
                    CANMsgId = lineWords[2].TrimEnd('x');
                else
                    continue;


                if (Regex.IsMatch(CANMsgId, @"^[0-9A-Fa-f]+$"))
                {
                    Buses CANBus = (Buses)Enum.Parse(typeof(Buses), (lineWords[1]));

                    CANMsgIdList.Add(new CANBusMsgIdMap(CANBus, CANMsgId));



                }

            }


            // Copying Distinct CANMessageIds
            if (CANBusRedDetails != null)
                CANBusRedDetails.CANBusMsgIDList = ReturnDistinctCANMsgIds(Buses.CANBusRed, CANMsgIdList);

            if (CANBusYellowDetails != null)
                CANBusYellowDetails.CANBusMsgIDList = ReturnDistinctCANMsgIds(Buses.CANBusYellow, CANMsgIdList);

            if (CANBusGreenDetails != null)
                CANBusGreenDetails.CANBusMsgIDList = ReturnDistinctCANMsgIds(Buses.CANBusGreen, CANMsgIdList);

            if (CANBusOrangeDetails != null)
                CANBusOrangeDetails.CANBusMsgIDList = ReturnDistinctCANMsgIds(Buses.CANBusOrange, CANMsgIdList);
        

        


            private List<string> ReturnDistinctCANMsgIds(Buses bus, List<canbusmsgidmap> CANMsgIdList)
        {
            return (from CANBusMsgIdMap busIdMap in CANMsgIdList
                    where busIdMap.Bus == bus
                    select busIdMap.MsgId).Distinct().ToList();
        }

        foreach (CANBusMsgIdMap CANBusMsgIdMap in CANBusGreenDetails.CANBusMsgIDList)
            {
                Console.WriteLine(CANBusGreenDetails.CANBusMsgIDList);


            }

            for (double i = 0; i <= 10000000000000; i++)
            {
            }
     
            




        }
    }



错误2非静态字段,方法或属性需要对象引用





谢谢

John


Error 2 An object reference is required for the non-static field, method, or property


Thanks
John

推荐答案

))
{
总线CANBus =(总线)Enum.Parse( typeof (总线),(lineWords [ 1 ])) ;

CANMsgIdList.Add( new CANBusMsgIdMap(CANBus,CANMsgId));



}

}


// 复制不同的CANMessageIds
如果(CANBusRedDetails!= null
CANBusRedDetails.CANBusMsgIDList = ReturnDistinctCANMsgIds(Buses.CANBusRed,CANMsgIdList);

if (CANBusYellowDetails!= null
CANBusYellowDetails.CANBusMsgIDList = ReturnDistinctCANMsgIds(Buses.CANBusYellow,CANMsgIdList);

if (CANBusGreenDetails!= null
CANBusGreenDetails.CANBusMsgIDList = ReturnDistinctCANMsgIds(Buses.CANBusGreen,CANMsgIdList);

if (CANBusOrangeDetails!= null
CANBusOrangeDetails.CANBusMsgIDList = ReturnDistinctCANMsgIds(Buses.CANBusOrange,CANMsgIdList);





private List< string> ReturnDistinctCANMsgIds(Buses总线,List< canbusmsgidmap> CANMsgIdList)
{
return from CANBusMsgIdMap busIdMap CANMsgIdList
其中 busIdMap.Bus == bus
select busIdMap.MsgId).Distinct()。ToList();
}

foreach (CANBusMsgIdMap CANBusMsgIdMap CANBusGreenDetails.CANBusMsgIDList)
{
Console.WriteLine(CANBusGreenDetails.CANBusMsgIDList);


}

for double i = 0 ; i < = 10000000000000 ; i ++)
{
}






}
}
")) { Buses CANBus = (Buses)Enum.Parse(typeof(Buses), (lineWords[1])); CANMsgIdList.Add(new CANBusMsgIdMap(CANBus, CANMsgId)); } } // Copying Distinct CANMessageIds if (CANBusRedDetails != null) CANBusRedDetails.CANBusMsgIDList = ReturnDistinctCANMsgIds(Buses.CANBusRed, CANMsgIdList); if (CANBusYellowDetails != null) CANBusYellowDetails.CANBusMsgIDList = ReturnDistinctCANMsgIds(Buses.CANBusYellow, CANMsgIdList); if (CANBusGreenDetails != null) CANBusGreenDetails.CANBusMsgIDList = ReturnDistinctCANMsgIds(Buses.CANBusGreen, CANMsgIdList); if (CANBusOrangeDetails != null) CANBusOrangeDetails.CANBusMsgIDList = ReturnDistinctCANMsgIds(Buses.CANBusOrange, CANMsgIdList); private List<string> ReturnDistinctCANMsgIds(Buses bus, List<canbusmsgidmap> CANMsgIdList) { return (from CANBusMsgIdMap busIdMap in CANMsgIdList where busIdMap.Bus == bus select busIdMap.MsgId).Distinct().ToList(); } foreach (CANBusMsgIdMap CANBusMsgIdMap in CANBusGreenDetails.CANBusMsgIDList) { Console.WriteLine(CANBusGreenDetails.CANBusMsgIDList); } for (double i = 0; i <= 10000000000000; i++) { } } }



错误2非静态字段,方法或属性需要对象引用





谢谢

John


Error 2 An object reference is required for the non-static field, method, or property


Thanks
John


Main static 但是调用的是 Bar 。这是行不通的。



要么新建一个程序的实例并调用 Bar 就此而言;

Main is static but is calling Bar that is not. That won't work.

Either new up an instance of Program and call Bar on that;
static void Main()
{
  var p = new Program();
  p.Bar();
}



或者使 Bar static



希望这会有所帮助,

Fredrik


Or make Bar static.

Hope this helps,
Fredrik


你必须实例化CANBusRedDetails,CANBusYellowDetails,CANBusGreenDetails和CANBusOrangeDetails在你使用它们之前。





You must instantiate CANBusRedDetails, CANBusYellowDetails, CANBusGreenDetails and CANBusOrangeDetails before you use them.


CANBusRedDetails = new CANBusDetails; 
CANBusYellowDetails = new CANBusDetails; 
CANBusGreenDetails = new CANBusDetails; 
CANBusOrangeDetails = new CANBusDetails;


这篇关于在代码中遇到错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆