我有问题以模块化的方式汇总项目.
我有这门课:
public enum ReportType
{
Worker,
Management,
Guest
}
public class Report
{
public ReportType Type { get; set; }
public int Lost { get; set; }
public Report(ReportType typ, int los)
{
Type = typ;
Lost = los;
}
}
Run Code Online (Sandbox Code Playgroud)
以及获取列表的方法Report
,并且应该找出并返回Report
具有最大损失的列表,并根据该数字进行一些计算.我开始的方法:
public class ReportsManager
{
public static List<Report> CalculateBiggerLost(List<Report> reportList)
{
int WorkerSum = 0;
int ManagementSum = 0;
int GuestSum = 0;
foreach (Report report in reportList)
{
switch (report.Type)
{
case ReportType.Guest: …
Run Code Online (Sandbox Code Playgroud) 我有以下xml:
<?xml version="1.0" encoding="WINDOWS-1255"?>
<body>
<HotelBooking>
<customers>
<cust>
<custID>1111111</custID>
<title>MR</title>
<lastName>MASAREWH</lastName>
<firstName>AHMAD IRAKI</firstName>
</cust>
<cust>
<custID>22222222</custID>
<title>MRS</title>
<lastName>HAJ YAHYA IRAQI</lastName>
<firstName>HIMAT</firstName>
</cust>
</customers>
<Details>
<name>Dublin & South</name>
</Details>
</HotelBooking>
</body>
Run Code Online (Sandbox Code Playgroud)
当我尝试将它序列化为一个对象时,我得到一个例外. System.InvalidOperationException: There is an error in XML document
尝试使用notepad ++ XML插件工具编辑此XML后我明白问题是'&'char中的:
<name>Dublin & South</name>
Run Code Online (Sandbox Code Playgroud)
如果我不想更改xml本身(例如将'&'替换为'AND'或类似的东西),我在这里有什么选择?还有更多的字符可能会使我的序列化过程失败吗?
thx任何帮助!
我需要在求职面试中创建客户端 - 服务器程序,其中客户端发送命令并且服务器处理它们.
服务器需要能够轻松更改,这意味着以后可能会有更多的命令类型.
所以我使用Strategy实现它,这意味着类处理命令看起来类似于:
public class ServerProcessor
{
Dictionary<string, Action<string>> commandsType;
public ServerProcessor()
{
commandsType = new Dictionary<string, Action<string>>();
}
public void RegisterCommand(string commandName, Action<string> command)
{
commandsType.Add(commandName, command);
}
public void Process(string commandName, string vars)
{
if (commandsType.ContainsKey(commandName))
{
commandsType[commandName].Invoke(vars);
}
}
}
Run Code Online (Sandbox Code Playgroud)
在我这样做之后,面试官说我需要使用Command模式实现它,但没有说明原因.
Command模式将是这样的:
public interface ICommand
{
void Execute(string vars);
string GetName();
}
public class ServerProcessor2
{
List<ICommand> commandsType;
public ServerProcessor2()
{
commandsType = new List<ICommand>();
}
public void RegisterCommand(ICommand commandName)
{
commandsType.Add(commandName);
}
public void …
Run Code Online (Sandbox Code Playgroud) 我想从中获取一个字符cin.get()
并将其添加到数组字符中。我使用strcat,但单个字符有错误。如果你知道请帮助我。感谢您的所有回答。
void main (void)
{
char e[80]="hi";
char c;
cin.get(c);
strcat(e,c);
cout << "e: " << e << endl;
getch();
}
Run Code Online (Sandbox Code Playgroud)
这是我想要执行此操作的代码的一部分。
我尝试编写减去两个日期时间字段的代码,并将结果返回给TimeSpan对象并返回Total Hours值.
DateTime x = new DateTime(2013, 7, 18, 12, 57, 40);
DateTime y = new DateTime(2013, 7, 18, 13, 2, 19);
double m = y.Subtract(x).TotalHours;
Run Code Online (Sandbox Code Playgroud)
我期望值m
是0.073166667,但实际结果是0.0775为什么?
编辑
对不起,我用错误的方式使用谷歌计算器BTW谢谢你@Liran Elisha和@ FSou1
我可以做第三个变量
c=a|b;
a=c&a;
b=c&a;
Run Code Online (Sandbox Code Playgroud)
但我需要在没有第三个变量的情况下这样做.我试过使用XOR它也没有帮助我.
当我执行这个belo程序时,它正在5
无意中打印.为什么?是因为减量没有发生还是在减量发生之前函数调用正在发生?
我尝试了替代方式制作fun(--n)
,它给了我正确的答案.但为什么它不起作用fun(n--)
?
void fun(int n)
{
if(!n)
{
cout << n << " " << endl;
}
else
{
cout << n << " "<<endl;
fun(n--);
}
}
int main()
{
int n = 5;
fun(n);
system("pause");
return 0;
}
Run Code Online (Sandbox Code Playgroud) TimeSpan
私人领域startTimeStamp
和DateTime.Ticks
财产之间有什么区别?是否有一种简单的方法来检索startTimeStamp
(不使用反射)?
我已经读过将字符串存储在字符数组中(使用null终止)允许稍后操作字符串(与指向字符串文字的指针不同).
#include <stdio.h>
int main()
{
char s[10]="Stack";
s[9]='a'; // a gets stored in array and if index is less than 6 string gets changed
printf("%s\n",s);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:堆叠
只要要操作的索引小于字符串的长度,这就可以工作.
这意味着即使有空的空间也不能改变字符串内容(因此大小)?
有没有直接的方法(不使用函数)在所需的位置添加'a'?
这个问题可能听起来微不足道但是,我知道每当一个函数开始执行时,堆栈中就会为函数的所有局部变量等创建堆栈帧,但是我无法理解当for循环开始执行或者内部的代码时会发生什么.如果条件开始执行.将它们视为在函数的堆栈框架内执行似乎是不合理的,因为它们有自己的范围,因此它们有自己的局部变量.但是,它们可以访问它们上面的函数的变量,因此这似乎意味着它们位于函数的堆栈框架内.
所以有人可以为我清楚这一点吗?
它们在被执行时实际位于内存中的哪个位置?
同样的问题出现在结构上,它们有自己的范围,它们不是指针,而只是更大的"盒子",包含整数,字符*等.
我有以下代码,需要将时间值从PT14H01M00S替换为14:01:00 ,下面的代码省略了前两个char,但是我得到了14H01M00S,没有使用字符串生成器就没有办法做到这一点?
String time = "PT14H01M00S";
String substring = time .substring(2);
substring.replace("H", ":");
substring.replace("M", ":");
substring.replace("S", "");
System.out.println(substring);
Run Code Online (Sandbox Code Playgroud) 我有xml文件,内容如下
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<REPLY>
<DATA BYTE='116' />
<DATA BYTE='88' />
<DATA BYTE='15' />
<DATA BYTE='0' />
from this
<DATA BYTE='44' />
<DATA BYTE='1' />
<DATA BYTE='0' />
<DATA BYTE='0' />
to this
<DATA BYTE='0' />
<DATA BYTE='0' />
.....
<DATA BYTE='255' />
<DATA BYTE='255' />
<DATA BYTE='255' />
<DATA BYTE='0' />
</REPLY>
Run Code Online (Sandbox Code Playgroud)
我想读此4线到这一点,其实我想提取值44
,1
,0
,0
从这些4行.值是动态的,文档结构不会改变(至少在前15行).
做这个的最好方式是什么?
public double accessor(int n)
{
switch(n)
{
case 0:
return this.a;
break;
case 1:
return this.b;
break;
case 2:
return this.c;
break;
case 3:
return this.d;
break;
case 4:
return this.e;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
a,b,c,d,e
都是double类型,但它告诉我break语句是不可达的,我必须返回一个double类型.我是java新手,如果这听起来很愚蠢,请原谅