问题列表 - 第16973页

Reflection是否打破了封装原则?

好吧,假设我们有一个类定义的类

public class TestClass
{
    private string MyPrivateProperty { get; set; }

    // This is for testing purposes
    public string GetMyProperty()
    {
        return MyPrivateProperty;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我们尝试:

TestClass t = new TestClass { MyPrivateProperty = "test" };
Run Code Online (Sandbox Code Playgroud)

TestClass.MyPrivateProperty is inaccessible due to its protection level正如预期的那样,编译失败.

尝试

TestClass t = new TestClass();
t.MyPrivateProperty = "test";
Run Code Online (Sandbox Code Playgroud)

并使用相同的消息再次编译失败.

一切都很好,直到现在,我们都在期待这一点.

但后来写道:

PropertyInfo aProp = t.GetType().GetProperty(
        "MyPrivateProperty",
        BindingFlags.NonPublic | BindingFlags.Instance);

// This works:
aProp.SetValue(t, "test", null);

// Check
Console.WriteLine(t.GetMyProperty());
Run Code Online (Sandbox Code Playgroud)

在这里,我们设法改变了一个私人领域.

仅使用反射能够改变某个物体的内部状态是不是不正常?

编辑:

感谢到目前为止的回复.对于那些说"你不必使用它"的人:那个班级设计师怎么样,看起来他再也不能承担内部的国家安全了?

c# oop reflection

10
推荐指数
2
解决办法
2264
查看次数

我可以在jQuery事件中包装javascript事件吗?

我有这个代码:

<html>
<head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    <script type="text/javascript">
        $(function(){
            $('a.one').click(function(event){
                event.preventDefault();
            });
        });
        function test(event){
            event.preventDefault();
        }
    </script>
    <style type="text/css">
        a.test { font-weight: bold; }
        body { font-family:sans-serif; background-color:#AAAAAA;}
    </style>
</head>
<body>
    <a class="one" href="http://jquery.com/">jQuery</a>
    <br/>
    <a class="two" href="http://stackoverflow.com/" onclick='test(event)'>stack overflow</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

测试函数现在不起作用,因为常规javascript事件不支持jQuery事件preventDefault-function.有没有办法在jQuery事件中包装常规javascript事件,以便我可以使用例如preventDefault?

javascript jquery

10
推荐指数
2
解决办法
4160
查看次数

ASP.Net MVC问题,仅适用于高级开发人员?

只是一个随机的问题.我已经在实习,然后作为软件设计师工作了近一年,主要是SQL Server 2005/2008,以及Visual Studio 2008和ASP.Net VB/C#,网络软件开发.我们最近用ASP.Net MVC开始了一个项目,我只是没有得到这个东西.

视图,控制器,模型等的概念很清楚.我仍然对某些语法感到困惑,但似乎不可能得到.然而,我的问题是你使用基本ASP.Net的所有基本控件和功能.想要一个下拉列表?浏览15个教程,其中一个可能实际工作.如何使用可编辑行的gridview?使用从几个不同教程构建的加载和代码加载手动构建表或辅助类.面板或多视图索引如何轻松控制页面上的可见用户界面?那么,去学习另一个关于如何从头开始做的教程.等等..

我不认为MVC是值得的.它必须是,有这么多人比我说的更聪明,更有经验.但是我现在已经和这头野兽战斗了一个多月了,我越来越沮丧地不得不用几个小时到几天的时间来完成最基本的任务,这些任务很简单,即使我几乎没有开始整个编程工作近一年前.

所以我的问题.像我这样的人在那里吗?是不是也有很好的博客或文章向我这样的人开放这一切?ASP.Net MVC是一个非常先进的东西,你需要拥有丰富的经验和才能才能真正掌握它吗?

谢谢你的时间.

asp.net-mvc

2
推荐指数
1
解决办法
5164
查看次数

什么是更快:很多ifs,否则如果?

我正在迭代一个数组并按值将其分类为一周中的几天.

为了做到这一点,我使用了许多if陈述.如果我使用多个ifs而不是一组else if语句,它对处理速度有什么影响吗?

php micro-optimization

22
推荐指数
5
解决办法
3万
查看次数

点Django在不同的Python版本

Django应用程序需要更高版本的Python.我刚刚将它安装到2.5(从2.4),现在当我python在命令行执行时,它说2.5.2.

话虽如此,Django仍然说Python Version: 2.4.3.

我该如何纠正?我重新启动/重新启动/重新部署无济于事.

python django path

3
推荐指数
2
解决办法
3809
查看次数

命名变量和函数的当前方案是什么?

是否有标准方式来命名它们还是程序员的电话?

谢谢.

c naming-conventions

1
推荐指数
1
解决办法
208
查看次数

如何建立一个指向VARIANTs的SAFEARRAY指针?

我正在尝试使用以下方法的COM组件:

HRESULT _stdcall Run(
    [in] SAFEARRAY(BSTR) paramNames,
    [in] SAFEARRAY(VARIANT *) paramValues
    );
Run Code Online (Sandbox Code Playgroud)

如何在C/C++中创建paramValues数组?

c++ com variant safearray

6
推荐指数
2
解决办法
1万
查看次数

如何在symfony中禁用表单元素?

我在表单中使用Select元素

'country' =>new sfWidgetFormChoice(array('choices' => CountryPeer::getAllCountry())),

'city' =>new sfWidgetFormChoice(array('choices' => CityPeer::getAllCity())),
Run Code Online (Sandbox Code Playgroud)

我希望在页面加载时第一次禁用该city元素.并且在选择国家时,将启用城市元素.(它将通过AJAX调用加载)

php forms symfony1

4
推荐指数
2
解决办法
1万
查看次数

正确绑定javascript事件

我正在寻找最合适有效的方法来绑定javascript事件 ; 特别是onload事件(我希望在页面和所有元素(如图像加载)之后发生事件).我知道在jQuery中有简单的方法可以做到这一点,但我想要更高效的原始javascript方法.

javascript javascript-events

18
推荐指数
3
解决办法
2万
查看次数

导致编译器或类型检测器(javac)中的堆栈溢出的Java片段?

昨天在一次研讨会上,主持人(Peter Sestoft)展示了一个小型的java程序,有3个类,同时具有协方差和反差.尝试使用javac进行编译时,类型检查器将抛出StackOverflowException.

该片段是由一些在微软工作的人开发的(想想一个叫做肯尼迪).

无法使用Google找到它.有没有人知道代码片段,你可以在这里粘贴它(最多10行代码),供大家看吗?:)

这很有趣......

java stack-overflow covariance contravariance typechecking

5
推荐指数
1
解决办法
243
查看次数