在代码中遇到错误 [英] Strucking with error in code
本文介绍了在代码中遇到错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在以下代码中遇到错误:
我尝试了很多来解决这个问题。但我不能。
有谁可以帮我解决这个问题?
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
isstatic
but is callingBar
that is not. That won't work.
Either new up an instance ofProgram
and callBar
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屋!
查看全文