现在的情况:
大大简化意味着:
新版本:
<?PHP
class blaController extends baseController {
private $intVar;
function dosomethingFunction() {
$this->intVar = 123;
$this->view('myView');
}
}
?>
Run Code Online (Sandbox Code Playgroud)
旧版:
<?PHP
$globalVar = 123;
// view "controllername" is automatically shown
?>
Run Code Online (Sandbox Code Playgroud)
我现在正在尝试编写一个包装器,以便能够在我的新MVC中使用我的旧控制器而无需重写所有内容.为此,我有一个"包装"控制器:
class wrapController extends baseController {
function dosomethingFunction() {
require 'old_dosomething.function.php';
$this->view('old_dosomething_view');
}
}
Run Code Online (Sandbox Code Playgroud)
(再一次:这非常非常简单 - 只是为了得到这个想法.不是真正的代码.)
该方法的问题在于,先前的全局变量$ globalVar现在仅存在于方法"dosomethingFunction"内,并且视图无法访问.
如果我可以强制要求表现为"在全局范围内"以便$ globalVar再次在全局范围内可用,则情况并非如此.
那么:有没有办法实现" require_global "或类似的东西?
(我的问题的一个解决方案是修改我的旧控制器以从一堆"全局"命令开始,但我更喜欢一个解决方案,我不必更改那么多旧代码.)
(注意:请不要告诉我GLOBALS是坏的.它完全忽略了这个问题的要点.请接受这是一个要求让一些旧代码在更新,更清洁的环境中工作.)
我在使用LoginView时遇到了问题.有人可以告诉我是否可以在LoginView(以及如何)中执行此操作,或者是否需要使用代码隐藏.
我有两个角色 - 管理员和用户.我想根据角色动态显示链接.我会在if语句中写出我想要的东西,因为它更容易解释:
if (role = Administrator) //Display only if administrator.
Show Hyperlink 1
Show Hyperlink 2
else
if (role = User) //Display only if user.
Show Hyperlink 3
Show Hyperlink 4
endif
//Display these if a user or if non-authenticated user...
Show Hyperlink 5
Show Hyperlink 6
Show Hyperlink 7
endif
Run Code Online (Sandbox Code Playgroud) 任何人都可以向我展示一些代码,告诉我如何在按TAB键时绕过DatagridView中的只读单元格?
在C#中,我可以使用以下语法初始化列表.
List<int> intList= new List<int>() { 1, 2, 3 };
Run Code Online (Sandbox Code Playgroud)
我想知道该{}语法是如何工作的,如果它有一个名称.有一个构造函数IEnumerable,你可以调用它.
List<int> intList= new List<int>(new int[]{ 1, 2, 3 });
Run Code Online (Sandbox Code Playgroud)
这似乎更"标准".当我解构List的默认构造函数时,我只看到了
this._items = Array.Empty;
Run Code Online (Sandbox Code Playgroud)
我希望能够做到这一点.
CustomClass abc = new CustomClass() {1, 2, 3};
Run Code Online (Sandbox Code Playgroud)
并能够使用该1, 2, 3列表.这是如何运作的?
更新
Jon Skeet回答道
它调用无参数构造函数,然后调用Add:
> List<int> tmp = new List<int>();
> tmp.Add(1); tmp.Add(2); tmp.Add(3);
> List<int> intList = tmp;
Run Code Online (Sandbox Code Playgroud)
我明白这是做什么的.我想知道怎么做.该语法如何知道调用Add方法?
更新
我知道,接受Jon Skeet的回答是多么陈词滥调.但是,字符串和整数的例子很棒.另外一个非常有用的MSDN页面是:
我很快会就一个项目向一家公司提供建议,而且我不太清楚我应该建议的编程语言.
它是一个相当简单(基于桌面)的应用程序,在网络上有一个中央数据源,用于存储和编辑组成机器的部件.需要在应用程序中配置机器,并使用此配置生成生产文档(手册,软件,物料清单).(例如,如果将A部分和B部分添加到配置的机器中,则必须使用本手册第5章中的变体X,如果这有意义的话)
有一些非标准的组件,如带有收音机和复选框的树,它必须有一些版本控制.它需要一个WYSIWYG编辑器来编辑手册的章节.它不一定必须在Windows以外的平台上运行,因为它只会在公司网络上使用,并且每个人都运行Windows.
我在想Java,因为它有大量有用的库和免费的IDE.我自己就是Java程序员,所以我对其他编程语言并不熟悉.关于我应该使用什么语言的想法,为什么?我相信公司中存在一些VB/VBA和Delphi知识(它不是IT公司,我不太可能自己编程).
谢谢堆!
请为商业的闭源应用程序推荐C++压缩(zip)库.所以,不是GPL许可证.
这是我的日常工作......
我认为,以下不能用Java完成.但我很乐意学习如何实现类似于它的东西.
假设我们有一个C类,它已经在编译代码中使用了.(我们既不能改变代码也不能改变C的原始定义).
进一步假设有一些有趣的代码可以重复使用,如果只有C实现接口I.事实上,导出D只是C +接口方法的实现,或多或少是微不足道的.
然而,一旦我有一个C,似乎没有办法说:我希望你成为一个D,也就是说,一个C实现我.
(旁注:我认为如果D是C,那么应该允许c的运行时类型为C的强制转换(D)c,并且C的唯一区别是添加方法.这应该是安全的,如果不是吗?)
怎么能解决这场灾难呢?
(我知道工厂设计模式,但这似乎不是一个解决方案.因为,一旦我们设法在以前是C的所有地方创建D,其他人发现另一个接口J有用并导出E扩展C实现J.但是E和D是不兼容的,因为它们都为C添加了一组不同的方法.因此,虽然我们总是可以传递一个预期C的E,但是我们不能通过一个预期D的E.而是,现在,我们需要一个新类F扩展C实现I,J.)
我们的应用程序使用libcurl for HTTP,我们希望能够访问Internet Explorer的代理设置.早期的Stack Overflow问题建议我们使用WinHttpGetIEProxyConfigForCurrentUser和WinHttpGetProxyForUrl.
遗憾的是,winhttp.h我们的副本Visual C++ 2005或Visual Studio 2008似乎没有包含标题.显然,可以下载更新的Platform SDK并将其安装在Visual C++ 2005中,但这是一个非常痛苦的过程,它不会不一定适用于较新版本的Visual Studio.
是否有一种良好的,受到良好支持的方式从C++访问WinHTTP 5.1 API?或者我们应该避免使用这些API?
我们有两个表与一对多的关系.我们希望强制执行约束,即给定父记录至少存在一个子记录.
这可能吗?
如果没有,您是否会更改模式以支持此类约束?如果是这样你会怎么做?
编辑:我正在使用SQL Server 2005
在我尝试学习ASP.NET的Arcana之后感到沮丧,我决定尝试ASP.NET MVC.
我对C#2.0有很多经验,除了ASP.NET之外几乎所有事情(WinForms,Windows服务,远程处理......).我编写PHP的时间甚至超过了我编写.NET的时间.凭借所有这些经验,我认为我已经为ASP.NET MVC做好了准备.我现在看到我正在同时学习以下内容并且有一点困难:
我目前正在通过NerdDinner免费书籍章节的一半.我并没有感到完全失去,但我确实感觉到我没有像我想的那样追随(因为我正在同时学习4件事 - 有时候不清楚哪一件事技能来自哪个抽象层).
您会为ASP.NET MVC推荐哪些先决条件知识?我上面列出的任何/所有人?其他?或者也许我只是很慢,大多数人会做我做的很好.
c# ×3
asp.net ×2
c++ ×2
java ×2
.net ×1
.net-3.5 ×1
asp.net-mvc ×1
compression ×1
constraints ×1
constructor ×1
datagridview ×1
delphi ×1
generics ×1
global ×1
include ×1
interface ×1
loginview ×1
oop ×1
php ×1
proxy ×1
scope ×1
sdk ×1
sql ×1
sql-server ×1
vb.net ×1
windows ×1
winhttp ×1
zip ×1