我在C#中有两个相似的结构,每个结构都包含一个整数,但后者有实现的get/set访问器.
为什么在分配字段之前必须Y使用new运算符初始化struct a?是y仍然当我初始化它的值类型new?
public struct X
{
public int a;
}
public struct Y
{
public int a { get; set; }
}
class Program
{
static void Main(string[] args)
{
X x;
x.a = 1;
Y y;
y.a = 2; // << compile error "unused local variable" here
Y y2 = new Y();
y2.a = 3;
}
}
Run Code Online (Sandbox Code Playgroud) 我必须创建几个代理,例如添加日志记录.像这样的东西:
interface IMath {
public int add(a, b);
}
class Math implements IMath {
public int add(a, b) { return a + b; }
}
class MathWithLogs implements IMath {
private IMath realMath;
public int add(a, b) {
Log.d("tag", "valueable info");
return realMath.add(a, b);
}
}
Run Code Online (Sandbox Code Playgroud)
一切都很好,只要这些接口不是20种方法,我只需要添加一些东西.
我的问题是,有没有办法用eclipse的一些插件自动生成包装类?
或者除非另有说明(比如@Override),否则有一种方法可以使用注释来调用realMath中的方法?
我正在使用JNDI来创建tomcat连接池.它在Web应用程序中运行良好.我相信InitialContext是由tomcat服务器提供的.
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
dataSource = (DataSource)envContext.lookup("jdbc/testdb");
Run Code Online (Sandbox Code Playgroud)
但是当我尝试从独立的Java程序调用相同的实用程序时,initContext对象为null.如何显式提供Context对象所期望的所有必需属性.
错误:javax.naming.NoInitialContextException:需要在环境或系统属性或applet参数或应用程序资源文件中指定类名:java.naming.factory.initial
我似乎无法在谷歌(或StackOverflow)的任何地方找到这个问题,这真的让我感到惊讶,所以我把它放在这里以帮助处于同样情况的其他人.
我有一个SQL查询在Oracle Sql Developer上运行正常,但是当我通过C#使用它adapter.Fill(table)来获取结果时,我得到Specified cast is not valid错误(System.InvalidCastException).
这是C#代码的简化版本:
var resultsTable = new DataTable();
using (var adapter = new OracleDataAdapter(cmd))
{
var rows = adapter.Fill(resultsTable); // exception thrown here, but sql runs fine on Sql Dev
return resultsTable;
}
Run Code Online (Sandbox Code Playgroud)
这是SQL的简化版本:
SELECT acct_no, market_value/mv_total
FROM myTable
WHERE NVL(market_value, 0) != 0
AND NVL(mv_total, 0) != 0
Run Code Online (Sandbox Code Playgroud)
如果我删除了除法条款,它就不会出错 - 所以它是特定的.但是,market_value和mv_totalNumber都是Number(19,4)类型,我可以看到Oracle适配器需要一个小数,所以正在进行什么演员?为什么它适用于SqlDev但不适用于C#?
我最近跳进了jQuery的世界.我看到了方法find(),filter()但无法弄清楚两者之间的区别.
这两者究竟有什么区别?
我创建了一个对象列表并添加了人员:
ArrayList<Person> peeps = new ArrayList<Person>();
peeps.add(new Person("112", "John", "Smith"));
peeps.add(new Person("516", "Jane", "Smith"));
peeps.add(new Person("114", "John", "Doe"));
Run Code Online (Sandbox Code Playgroud)
我试图弄清楚如何通过ID号从列表中删除此人.因此,如果我想删除身份证号码为114的人但现在没有列入名单的人,我该怎么办?
有没有办法将代码中的Dictionary转换为url参数字符串?
例如
// An example list of parameters
Dictionary<string, object> parameters ...;
foreach (Item in List)
{
parameters.Add(Item.Name, Item.Value);
}
string url = "http://www.somesite.com?" + parameters.XX.ToString();
Run Code Online (Sandbox Code Playgroud)
在MVC HtmlHelpers内部,您可以使用UrlHelper(或控制器中的Url)生成URL,但在Web窗体代码隐藏中,此HtmlHelper不可用.
string url = UrlHelper.GenerateUrl("Default", "Action", "Controller",
new RouteValueDictionary(parameters), htmlHelper.RouteCollection ,
htmlHelper.ViewContext.RequestContext, true);
Run Code Online (Sandbox Code Playgroud)
如果没有MVC助手,如何在C#Web窗体代码隐藏(在MVC/Web窗体应用程序中)中完成?
我们最近在数据库中添加了一个新的"级别" - 在整个数据库的表中的现有ID Identity字段之上/之前添加了一个键"Company_ID".
例如,如果表具有ID然后是字段,则它现在具有Company_ID,然后是ID,然后是字段.这个想法是,这允许ID为提供给功能的每个不同的Company_ID值自动递增(Company_ID 1可以具有ID 1,2,3等; Company_ID 2可以具有ID 1,2,3等).
自动增量字段保留为ID.示例表是:
[dbo].[Project](
[Company_ID] [int] NOT NULL,
[ID] [int] IDENTITY(1,1) NOT NULL,
[DescShort] [varchar](100) NULL,
[TypeLookUp_ID] [int] NULL,
[StatusLookUp_ID] [int] NULL,
[IsActive] [bit] NOT NULL,
CONSTRAINT [PK_Project] PRIMARY KEY CLUSTERED
(
[Company_ID] ASC,
[ID] ASC
)
Run Code Online (Sandbox Code Playgroud)
在引入Company_ID之前,为了执行CREATE,我们只需填充DescShort,TypeLookUp_ID,StatusLookUp_ID和IsActive字段,并将ID保留为默认值,可能为0.
记录已成功保存,ID由数据库自动填充,然后用于通过View执行SHOW,依此类推.
但是,现在我们要将Company_ID设置为指定值,保留ID,并像以前一样填充字段.
_db.Project.Add(newProject);
_db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
是的,我们要指定Company_ID值.我们希望自动填充ID,如前所述.我们收到错误消息:
当IDENTITY_INSERT设置为OFF时,无法在表"Project"中为identity列插入显式值
这是由指定Company_ID还是ID字段引起的?你知道我们如何纠正这个问题吗?
我试图用7zip压缩文件夹,我正在使用7zip GUI,但我想排除一些我已在excludelist.txt文件中定义的文件.我想把它放在GUI的Parameters选项中:
-x@"D:\Projects Backup\excludelist.lst"
Run Code Online (Sandbox Code Playgroud)
但是我收到了这个错误:
参数不正确

我收到了这个错误
安装失败.无法从代理接收心跳.
当我在单个节点上安装cloudera时.这是我的/etc/hosts文件中的内容:
127.0.0.1 localhost
192.168.2.131 ubuntu
Run Code Online (Sandbox Code Playgroud)
这是我的/etc/hostname文件中的内容:
ubuntu
Run Code Online (Sandbox Code Playgroud)
这是我的/var/log/cloudera-scm-agent文件中的错误:
[13/Jun/2014 12:31:58 +0000] 15366 MainThread agent INFO To override these variables, use /etc/cloudera-scm-agent/config.ini. Environment variables for CDH locations are not used when CDH is installed from parcels.
[13/Jun/2014 12:31:58 +0000] 15366 MainThread agent INFO Re-using pre-existing directory: /run/cloudera-scm-agent/process
[13/Jun/2014 12:31:58 +0000] 15366 MainThread agent INFO Re-using pre-existing directory: /run/cloudera-scm-agent/supervisor
[13/Jun/2014 12:31:58 +0000] 15366 MainThread agent INFO Re-using pre-existing directory: /run/cloudera-scm-agent/supervisor/include
[13/Jun/2014 12:31:58 +0000] 15366 …Run Code Online (Sandbox Code Playgroud)