.NET 1.1缺乏ParameterizedThreadStart(我必须使用1.1,因为它是支持NT 4.0的最后一个)
在.NET 2.0中,我只想写:
Thread clientThread = new Thread(new ParameterizedThreadStart(SomeThreadProc));
clientThread.Start(someThreadParams);
Run Code Online (Sandbox Code Playgroud)
如何创建等效的.NET 1.1代码?
在VS 2008的解决方案我刚刚继承有一个正常的类库项目,实际上应该是一个Web应用程序项目(因为它是一个Web服务确实).转换它的最佳方法是什么?
我有一个Silverlight客户端,它与一些ASP.NET Web服务进行通信,然后修改数据库.客户端具有可以修改的数据,并通过Web服务发送到数据库.此数据按日期组织.
显然,客户端可以驻留在ASP.NET服务器的不同时区,因此,如何确保DateTime信息在数据库的正确时区内?DateTime的时区信息是否会在客户端和服务器之间存活,以便转换为UTC将正确生成UTC时间,还是需要在客户端进行UTC转换?
我有一个看起来像这样的XML文档
<Elements>
<Element>
<DisplayName />
<Type />
</Element>
</Elements>
Run Code Online (Sandbox Code Playgroud)
我有一个界面,
interface IElement
{
string DisplayName {get;}
}
Run Code Online (Sandbox Code Playgroud)
以及一些派生类:
public class AElement: IElement
public class BElement: IElement
Run Code Online (Sandbox Code Playgroud)
我想要做的是编写最有效的查询来迭代XML并创建一个列表IElement,包含AElement或BElement基于XML中的"Type"属性.
到目前为止我有这个:
IEnumerable<AElement> elements =
from xmlElement in XElement.Load(path).Elements("Element")
where xmlElement.Element("type").Value == "AElement"
select new AElement(xmlElement.Element("DisplayName").Value);
return elements.Cast<IElement>().ToList();
Run Code Online (Sandbox Code Playgroud)
但这只是为了AElement.有没有办法添加BElement相同的查询,并使其通用IEnumerable<IElement>?或者我是否必须为每个派生类型运行此查询一次?
我正在测试WCF 4的无配置功能.
我已经构建了一个简单的服务并将其部署到IIS.该服务部署为svc文件
客户端配置为空:
<configuration>
<system.serviceModel>
<bindings />
<client />
</system.serviceModel>
</configuration>
Run Code Online (Sandbox Code Playgroud)
Web服务器上的配置是:
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
这段代码工作正常:
BasicHttpBinding myBinding = new BasicHttpBinding();
EndpointAddress myEndpoint = new EndpointAddress("http://localhost/Service1.svc");
ChannelFactory<IService1> myChannelFactory = new ChannelFactory<IService1>(myBinding, myEndpoint);
IService1 wcfClient1 = myChannelFactory.CreateChannel();
int z = wcfClient1.Multiply(composite);
Run Code Online (Sandbox Code Playgroud)
此代码不会:
NetTcpBinding myBinding = new NetTcpBinding();
EndpointAddress myEndpoint = new EndpointAddress("net.tcp://localhost:808/Service1.svc");
ChannelFactory<IService1> myChannelFactory = new ChannelFactory<IService1>(myBinding, myEndpoint); …Run Code Online (Sandbox Code Playgroud) List<string>除了出现的字符串之外,我将如何获取出现的所有字符串List<string[]>.如果他们都List<string>这样做,我可以让它工作
IEnumerable<string> list3 = List1.Except(List2);
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何用它List<string[0]>代替list2
我有一个C#应用程序,我动态填充,然后启动一个名为cmTestplan的上下文菜单.
private void cmTestplan_Opening(object sender, CancelEventArgs e)
{
if ((cmTestplan.SourceControl is TextBox) &&
(cmTestplan.SourceControl.Enabled == true) &&
(cmTestplan.SourceControl.Text != ""))
{
RightClickSetup(cmTestplan.SourceControl.Text);
cmTestplan.Show();
}
}
private void RightClickSetup(string Path)
{
this.UseWaitCursor = true;
cmTestplan.Items.Clear();
//Test for file or folder
if (Directory.Exists(Path) == true)
{
cmTestplan.Items.Add("Open folder");
this.UseWaitCursor = false;
}
else if (File.Exists(Path) == true)
{
cmTestplan.Items.Add("Open folder");
cmTestplan.Items.Add("Open file");
this.UseWaitCursor = false;
}
}
Run Code Online (Sandbox Code Playgroud)
出于某种原因(我希望你们其中一位女士或先生们能够提供),我第一次右键单击与此cmTestplan关联的文本框时,菜单不会显示.此后,只需单击一下,它就会一致显示.
我已经尝试评论所有文件/文件夹检查仍然得到问题.
我正在使用c#.net 2.0.
我和我一起得到了以下字符串
string str = "tcm:0-433-1";
Run Code Online (Sandbox Code Playgroud)
现在我想在C#中创建一个方法,它将上面的字符串作为输入参数并将返回"tcm:433-".
请建议最好的方法!
我有一大堆的是具有不同的含义很多的整数代码(我宁愿一个通用的解决方案,但对于一个具体的例子:某一天的 - 月月对比的最年与年等).我希望能够基于这些含义重载类构造函数.
例如
int a; // takes role A
int b; // takes role B
var A = new Foo(a); // should call one constructor
var B = new Foo(b); // should call another constructor
Run Code Online (Sandbox Code Playgroud)
现在很明显,这将无法工作,但如果我可以定义一个类型(而不仅仅是一个别名),int但是这个类型的名称是:
typedef int TypeA; // stealing the C syntax
typedef int TypeB;
Run Code Online (Sandbox Code Playgroud)
我可以做我需要的重载,让类型系统跟踪什么是什么.特别是这将允许我确保值不会混淆,例如,作为一年的函数返回的值不用作月中的日期.
有没有办法短的class或struct包装在C#这样做吗?
如果解决方案也适用于浮动和双打,那将是很好的.
当你调用a时,Action<T>你将传入一个T类型的变量,该变量可用于委托中定义的代码,例如
var myAction = new Action<string>(param =>
{
Console.WriteLine("This is my param: '{0}'.", param);
});
myAction("Foo");
// Outputs: This is my param: 'Foo'.
Run Code Online (Sandbox Code Playgroud)
当你调用Func<T>委托时,会返回一个T类型的变量,例如
var myFunc = new Func<string>(() =>
{
return "Bar";
});
Console.WriteLine("This was returned from myFunc: '{0}'.", myFunc());
// Outputs: This was returned from myFunc: 'Bar'.
Run Code Online (Sandbox Code Playgroud)
这是问题 -
有这将需要输入参数和第三委托类型也返回一个值?就像是 -
var fooDeletegate = new FooDelegate<string, int>(theInputInt =>
{
return "The Answer to the Ultimate Question of Life, the Universe, and Everything …Run Code Online (Sandbox Code Playgroud) 我正在尝试用输入解决分数背包问题,
[("label 1", value, weight), ("label 2", value, weight), ...]
Run Code Online (Sandbox Code Playgroud)
和输出,
[("label 1", value, solution_weight), ("label 2", value, solution_weight), ...]
Run Code Online (Sandbox Code Playgroud)
但我一直收到错误computeKnapsack:
"Couldn't match expected type `(t1, t2, t0)' with actual type `[a0]`"
Run Code Online (Sandbox Code Playgroud)
我无法理解问题可能是什么.我正在尝试创建一个三项目元组列表.我怎样才能让它停止期待一个3入口的元组?
fst3 (a,b,c) = a
snd3 (a,b,c) = b
trd3 (a,b,c) = c
fst4 (a,b,c,d) = a
snd4 (a,b,c,d) = b
trd4 (a,b,c,d) = c
qud4 (a,b,c,d) = d
sortFrac (a1, b1, c1, d1) (a2, b2, c2, d2)
| d1 > d2 = GT
| d1 …Run Code Online (Sandbox Code Playgroud) 有人可以向我解释这段代码如何产生排列吗?
我看到它正在使用递归列表构建,但我不能完全了解精确的机制.
public static IEnumerable<IEnumerable<T>> Permute<T>(this IEnumerable<T> list)
{
if (list.Count() == 1)
return new List<IEnumerable<T>> { list };
return list
.Select((a, i1) =>
Permute(list.Where((b, i2) => i2 != i1))
.Select(b => (new List<T> { a }).Union(b)))
.SelectMany(c => c);
}
Run Code Online (Sandbox Code Playgroud)