如果我们想从方法中获取值,我们可以使用返回值,如下所示:
public int GetValue();
Run Code Online (Sandbox Code Playgroud)
要么:
public void GetValue(out int x);
Run Code Online (Sandbox Code Playgroud)
我真的不明白它们之间的差异,所以,不知道哪个更好.你能解释一下这个吗?
谢谢.
在他出色的着作"CLR Via C#"中,杰弗里里希特说他不喜欢属性,并建议不要使用它们.他给出了一些理由,但我并不理解.任何人都可以向我解释为什么我应该或不应该使用属性?在C#3.0中,具有自动属性,这会改变吗?
作为参考,我添加了Jeffrey Richter的观点:
•财产可以是只读的或只写的; 字段访问始终是可读写的.如果定义属性,最好同时提供get和set访问器方法.
•属性方法可能会抛出异常; 字段访问永远不会抛出异常.
•属性不能作为out或ref参数传递给方法; 一个领域可以.例如,以下代码将无法编译:
using System;
public sealed class SomeType
{
private static String Name
{
get { return null; }
set {}
}
static void MethodWithOutParam(out String n) { n = null; }
public static void Main()
{
// For the line of code below, the C# compiler emits the following:
// error CS0206: A property or indexer may not
// be passed as an out or ref parameter
MethodWithOutParam(out Name);
} …
Run Code Online (Sandbox Code Playgroud) 既然我已经了解了Node.js,我一直都是它的粉丝.但今天我发现了SignalR,它为ASP.NET提供了另一种异步 - 可扩展 - 实时模型.
据我所知,在的Node.js的SignalR的主要优点是客户机 - 服务器之间共享代码(另一个优势应该在于它是跨平台),和SignalR的主要优势是一个更加成熟的框架和更好工具(IDE)支持.所以我想知道:如果SignalR在这里,我们是否还需要Windows上的Node.js?我不知道Node.js有什么优点吗?
我正在使用Inno Setup来创建安装程序.
我希望安装程序自动卸载以前安装的版本,而不是覆盖它.我怎样才能做到这一点?
我搜索了SO并找到了关于Quartz.net的答案.但它似乎对我的项目来说太大了.我想要一个等效的解决方案,但更简单和(最好)代码内(不需要外部库).如何在特定时间每天调用一种方法?
我需要添加一些关于此的信息:
我想要一种更有效的方法来做到这一点,不需要经常检查时间,并且我可以控制是否完成了工作.如果方法失败(由于任何问题),程序应该知道写入日志/发送电子邮件.这就是我需要调用方法而不是安排工作的原因.
我发现这个解决方案在Java中用Java定时调用一个方法.在C#中是否有类似的方式?
编辑:我做到了这一点.我在void Main()中添加了一个参数,并创建了一个bat(由Windows Task Scheduler安排)以使用此参数运行程序.程序运行,完成工作,然后退出.如果作业失败,则能够写入日志和发送电子邮件.这种方法很符合我的要求:)
我需要从webservice调用一个方法,所以我写了这段代码:
private string urlPath = "http://xxx.xxx.xxx/manager/";
string request = urlPath + "index.php/org/get_org_form";
WebRequest webRequest = WebRequest.Create(request);
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.
webRequest.ContentLength = 0;
WebResponse webResponse = webRequest.GetResponse();
Run Code Online (Sandbox Code Playgroud)
但是这种方法需要一些参数,如下所示:
发布数据:
_username:'API USER', // api authentication username
_password:'API PASSWORD', // api authentication password
Run Code Online (Sandbox Code Playgroud)
如何将这些参数添加到此Webrequest中?
提前致谢.
我正在学习SQL Server,但对Oracle知之甚少.谁能给我一个公平的比较呢?我已经阅读了有关SQL Server 2000与Oracle 9i的比较,但它有点过时了.SQL Server 2008是否赶上了Oracle 11g/i?
这是我今天下午得到的一个问题:
有一个表包含员工的ID,名称和薪水,在SQL Server中获取第二高薪员工的姓名
这是我的答案,我只是用纸写的,并不确定它是完全有效的,但似乎有效:
SELECT Name FROM Employees WHERE Salary =
( SELECT DISTINCT TOP (1) Salary FROM Employees WHERE Salary NOT IN
(SELECT DISTINCT TOP (1) Salary FROM Employees ORDER BY Salary DESCENDING)
ORDER BY Salary DESCENDING)
Run Code Online (Sandbox Code Playgroud)
我认为这很难看,但这是我脑海中唯一的解决方案.
你能建议我一个更好的查询吗?
非常感谢你.
ORM似乎是一个快速增长的模型,其优点和缺点都在他们身边.来自Richard Kiessig的超快ASP.NET(http://www.amazon.com/Ultra-Fast-ASP-NET-Build-Ultra-Scalable-Server/dp/1430223839/ref=pd_bxgy_b_text_b):
"我喜欢他们,因为他们允许我非常快速地开发小型的概念验证网站.我可以将大部分的SQL和相关的复杂性放在我需要的地方,并专注于对象,业务逻辑和演示.但是,与此同时,我也不关心它们,因为不幸的是,它们的性能和可扩展性通常非常差,即使它们与一个全面的缓存系统集成(当你意识到正确的时候,它的原因就变得清晰了)配置,SQL Server本身实际上只是一个大数据缓存"
我的问题是:
你对理查德的想法有何评论?你同意他的意见吗?如果没有,请说明原因.
ORM和传统数据库查询最适合的字段是什么?换句话说,你应该在哪里使用ORM,你应该在哪里使用传统的数据库查询:),哪种类型/大小...应用程序你无疑应该选择ORM /传统的数据库查询
提前致谢
c# ×4
sql-server ×2
.net ×1
asp.net ×1
asynchronous ×1
comparison ×1
database ×1
inno-setup ×1
installer ×1
list ×1
methods ×1
node.js ×1
optimization ×1
oracle ×1
performance ×1
properties ×1
python ×1
reference ×1
signalr ×1
sql ×1
t-sql ×1
tuples ×1
web-services ×1
winforms ×1