这是我正在尝试做的事情:我有一个XmlDocument,它已经加载到内存中.我想将xsl转换应用于该文档的单个节点.
这是代码:
var xDoc=GetXmlDocument();
var myNode=xDoc.SelectSingleNode("//node");
var xslTransformer=new XslCompiledTransform();
xslTransformer.Load(new XmlTextReader(new StringReader(myXslText)));
Run Code Online (Sandbox Code Playgroud)
现在我需要在myNode上应用xslTransformer.任何人都可以给我看一个代码示例,这样做吗?到目前为止我所看到的只适用于输入和输出文件.
我希望能够枚举一个类实现的所有事件.
class A
{
public delegate void X();
public event X EventA;
}
class B:A
{
public event X EventB;
}
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能typeof(B)
得到一份清单,其中包括EventB
?
我有Main.java,看起来像这样:
public class Main {
/**
* @param args
*/
public static void main(String[] args) throws UnsupportedEncodingException {
// TODO Auto-generated method stub
System.out.println("here!");
}
}
Run Code Online (Sandbox Code Playgroud)
我编译它:
javac Main.java
Run Code Online (Sandbox Code Playgroud)
并尝试运行它
java Main
Run Code Online (Sandbox Code Playgroud)
它会因以下例外而死:
Exception in thread "main" java.lang.UnsupportedClassVersionError: Main : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: Main. Program will exit.
Run Code Online (Sandbox Code Playgroud)
java -version是: …
这是我正在做的事情:
这必须以尽可能快的方式使用非常大的字符串数组
使用HashSet是检查字符串是否已经发生的最快方法,还是有更好的.net 4.5?
这是我声明的界面:
[ServiceContract]
public interface class IShedluer
{
[OperationContract]
array<Object^>^ GetResult(UInt64 taskId);
}
Run Code Online (Sandbox Code Playgroud)
这是尝试实现它的类:
ref class MyShedluer:IShedluer
{
Shedluer ^shedluer;//this is NOT MyShedluer
public:
MyShedluer(void);
array<Object^>^ GetResult(UInt64 taskId)
{
return shedluer->GetResult(taskId);
}
}
Run Code Online (Sandbox Code Playgroud)
当我试图编译这个时,我得到了
Error 15 error C3766: 'MyShedluer' must provide an implementation for
the interface method 'cli::array<Type> ^IShedluer::GetResult(unsigned __int64)'
d:\users\menkaur\documents\visual studio 2010\projects\MyProject\
\kernel\MyShedluer.h 78 1 MyProject.Kernel
Run Code Online (Sandbox Code Playgroud)
我为什么要这个?
这是我窗口的代码:
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="leartWPF.ControlTestWindow"
x:Name="Window"
Title="ControlTestWindow"
Width="640" Height="480">
<Grid x:Name="LayoutRoot">
<TextBlock Height="26" Margin="45,26,241,0" TextWrapping="Wrap" Text="Please, enter an ariphmetical expression to calculate:" VerticalAlignment="Top"/>
<TextBox Margin="48,72,63,201" TextWrapping="Wrap" Text="{Binding Input, ElementName=Window, FallbackValue=1+1, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}" TextChanged="TextBox_TextChanged" >
</TextBox>
<!--<TextBlock Margin="282,208,266,167" TextWrapping="Wrap" Text="=" FontSize="64"/>-->
<TextBlock Height="90" Margin="83,0,77,60" TextWrapping="Wrap" VerticalAlignment="Bottom" FontSize="48" Text="{Binding Result, ElementName=Window, Mode=TwoWay}"/>
<Button Content="=" Height="27" Margin="233,0,263,166" VerticalAlignment="Bottom" FontSize="16"/>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
和班级:
public partial class ControlTestWindow : Window
{
private string _input;
public double Result { get; set; }
private static VsaEngine …
Run Code Online (Sandbox Code Playgroud) 我已经基于Expander类创建了一个自定义控件:
public partial class HideableExpander : Expander
{
public new double Height
{
get
{
if (Visibility== System.Windows.Visibility.Hidden)
{
return 0;
}
return base.Height;
}
set
{
base.Height = value;
}
}
public new double Width
{
get
{
if (Visibility == System.Windows.Visibility.Hidden)
{
return 0;
}
return base.Width;
}
set
{
base.Width = value;
}
}
public new Thickness Margin
{
get
{
if (Visibility== System.Windows.Visibility.Hidden)
{
return new Thickness();
}
return base.Margin;
}
set
{
base.Margin = value; …
Run Code Online (Sandbox Code Playgroud) 我正在考虑使用await/async范例重写我的网络库.很多使用该库的代码仍然是同步的,所以我计划将整个库移动到异步模式,然后创建方法存根,这会将异步调用转换为同步调用.
任何人都可以告诉我这是否会使我的图书馆更糟糕的同步使用?(如果它会消耗更多的CPU,方法调用需要更长的时间来执行等)?
我有代码看起来像这样:
Parallel.Foreach(ItemSource(),(item)=>DoSomething(item));
Run Code Online (Sandbox Code Playgroud)
ItemSource()
产生无限的物品流.
我希望在满足某些条件后退出循环,而我宁愿不在DoSomething中抛出异常(我认为这种方法是一种糟糕的编程风格).
理想情况下,会有像cancelToken这样的东西.我会在一个或多个线程中调用cancellationToken.Activate(),之后parallel.foreach将停止创建新线程,并且在最后一个线程退出后,该函数将返回.
这可以用于使用Parallel.ForEach在c#中进行,还是应该使用线程insteag?
更新 以下是微软建议我这样做的方式:
try
{
Parallel.ForEach(nums, po, (num) =>
{
double d = Math.Sqrt(num);
Console.WriteLine("{0} on {1}", d, Thread.CurrentThread.ManagedThreadId);
po.CancellationToken.ThrowIfCancellationRequested();
});
}
catch (OperationCanceledException e)
{
Console.WriteLine(e.Message);
}
Run Code Online (Sandbox Code Playgroud)
我不喜欢这种方法,因为它涉及在委托中抛出异常.
我有输入日期时间字符串,如下所示:2015-01-28 17:55:43
.问题是它们处于UTC + 8(或其他一些转变).无论软件运行的时区如何,我都需要将这些字符串解析并正确处理为UTC.我的问题是DateTime.Parse
返回本地时间,而不是UTC时间,并且在解析字符串时我没有看到指定shift的方法.我目前的解决方案看起来像这样:
add.LastUpdatedTime = new DateTime((DateTime.Parse(text) - new TimeSpan(0, 8, 0, 0)).Ticks,DateTimeKind.Utc);
这很丑陋,我不确定它在任何情况下都能很好地运作.
有没有更好的方法呢?
c# ×8
wpf ×2
xaml ×2
arrays ×1
async-await ×1
c++ ×1
comparison ×1
data-binding ×1
datetime ×1
foreach ×1
hashset ×1
interface ×1
java ×1
managed-c++ ×1
parsing ×1
performance ×1
reflection ×1
string ×1
xml ×1
xslt ×1