我正在使用C#创建一个轻量级编辑器,并希望知道将字符串转换为格式良好的XML字符串的最佳方法.我希望C#库中有一个公共方法,比如"public bool FormatAsXml(string text,out string formattedXmlText)",但它可能不那么容易,是吗?
非常具体地,"SomeMethod"方法必须是什么才能产生下面的输出?
string unformattedXml;
string formattedXml;
unformattedXml = "<?xml version=\"1.0\"?><book><author>Lewis, C.S.</author><title>The Four Loves</title></book>"
formattedXml = SomeMethod(unformattedXml);
Console.WriteLine(formattedXml);
Run Code Online (Sandbox Code Playgroud)
输出:
<?xml version="1.0"?>
<book id="123">
<author>Lewis, C.S.</author>
<title>The Four Loves</title>
</book>
Run Code Online (Sandbox Code Playgroud) 为什么我们使用override和virtual如果它们在我们不使用override和virtual时会产生相同的效果?
例1:
class BaseClass
{
public virtual string call()
{
return "A";
}
}
class DerivedClass : BaseClass
{
public override string call()
{
return "B";
}
}
Run Code Online (Sandbox Code Playgroud)
输出:B
例2:
class BaseClass
{
public string call()
{
return "A";
}
}
class DerivedClass : BaseClass
{
public string call()
{
return "B";
}
}
Run Code Online (Sandbox Code Playgroud)
输出仍然是相同的:
输出:B
运行测试:
class Program
{
static void Main(string[] args)
{
DerivedClass dc = new DerivedClass();
Console.WriteLine(dc.call());
Console.ReadKey();
}
}
Run Code Online (Sandbox Code Playgroud)
编译器是否在编译时自动添加虚拟和覆盖?
如果有人向我解释使用虚拟和覆盖的原因,我会很高兴.
我有以下问题:
class Request<T>
{
private T sw;
public Request()
{
//How can i create here the instance like
sw = new T();
}
}
Run Code Online (Sandbox Code Playgroud)
有可能做到吗?
我想创建一个新类型,即。电子:
[sbyte (1 Byte) Value-range : -128 to +127]
[byte (1 Byte) Value-range : 0 to +255]
[short (2 Byte) Value-range : -32768 to +32767]
[ushort (2 Byte) Value-range : 0 to +65535]
[int (4 Byte) Value-range : -2147483648 to +2147483647]
[uint (4 Byte) Value-range : 0 to +4294967295]
.
.
.
etc.
Run Code Online (Sandbox Code Playgroud)
现在我想创建 0 到 200000 范围内的 LInt(LowInt) 类型,所以我不想使用 uint 或 int。
用C#可以吗?
谢谢你!
我做了一个JavaClass,它使加,减,乘多。等等
和数字类似(155 ^ 199 [+,-,,/] 555 ^ 669 [+,-,,/] ..... [+,-,*,/] x ^ n);
每个数字都存储在Byte-Array中,并且byte-Array可以包含最大值。66.442
例:
(字节)数组= [1] [0] + [9] [0] = [1] [0] [0]
(字节)数组= [9] [0] * [9] [0] = [1] [8] [0] [0]
如果数字大于则我的班级文件不起作用(例如:999 ^ 999)
我如何解决这个问题,使更大的数字之间相加?
当字节数组达到66.443值时,VM给出此错误:
原因:java.lang.ClassNotFoundException。这实际上不是正确的错误描述。
好吧,这意味着,如果我有一个具有66.443值的字节数组,则该类无法正确读取。
已解决: 使用多维字节数组来解决此问题。
array {array,... nth-array} [+,-,/] nth-array {array,... nth-array}
仅需几秒钟即可在大数之间进行加法运算。
谢谢!
我需要尽可能快地验证并在socket上接收下一个xml数据.
我正在使用此方法来验证收到的xml-datas.
private validateRecievedXmlCallback()
{
try
{
XmlReader xreader = XmlReader.Create(new StringReader(xmlData));
while (xreader.Read()) ;
}
catch (Exception)
{
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
但我认为这种方法效率不高.我实际上只需要检查最后一个标签.
例:
<test valueA="1" valueB="2">
<data valueC="1" />
<data valueC="5" />
<data valueC="5">220</data>
</test> //I need to check if </test> tag closed, but whats the best way to do it?
Run Code Online (Sandbox Code Playgroud) 我真的无法解决这个问题,甚至不知道,如果可能的话.
我想使用CTRL + C和CTRL + V快捷方式.
示例:有2个应用程序.1.应用程序是用C#编写的,2.App是一个Java-Applet.我想从C#App复制字符串.并将其粘贴到Java-Applet中的焦点文本框中.
我将字符串复制到剪贴板中,我需要将其粘贴到Java-Applet中的焦点文本框中.
string data = "12345";
Clipboard.SetData(DataFormats.Text, (Object)data);
Run Code Online (Sandbox Code Playgroud)
现在我需要将此信息粘贴到Applet中的文本框中.
如何在C#中调用CTRL + V快捷方式?
有可能做那样的事吗?
谢谢!
我有两个功能:
let fn2 =
if "something happend" then
fn1
let rec fn1 =
if "something" then
fn2
Run Code Online (Sandbox Code Playgroud)
这只是一个例子,我想要做的.有什么想法怎么做?
或者我应该将2.函数发送到1.函数作为参数?