Добавьте это в свой global.asax
private void Application_BeginRequest(object sender, EventArgs e)
{
Context.RewritePath(System.Text.RegularExpressions.Regex.Replace(
Request.Path, "/rest/(.*)/", "/$1.svc/"));
}
Это заменит / rest / Service1 / arg1 / arg2 на /Service1.svc/arg1/arg2
Просто типичная Наука Аккомпанемента 101 комментарий типа:
$i = 0; //set i to 0
$i++; //use sneaky trick to add 1 to i!
if ($i==$j) { // I made sure to use == rather than = here to avoid a bug
Такая вещь.
Заключение в кавычки этого из памяти, таким образом, это не могло бы быть точно.
я не знаю то, что f*ck это делает, но это, кажется, работает так, я не касаюсь его.
забавной вещью является способ, которым я узнал об этом. Этот комментарий был встроен в приложение доступа, которое некоторый разработчик в нашей компании записал для клиента и распределил в MDB. К сожалению, код, который ", кажется, работает" бомбивший и Доступ покорно, открыл окно кода с отладчиком, выделяющим строку прямо ниже комментария. Это точно не внушало доверие с тем клиентом.
Чье-то имя или инициалы, и вот именно. Иногда эти подписи определяют блок кода...
//SFD Start
...code...
//SFD End
Как код такое произведение искусства, они должны подписать его! Плюс, что, если кто-то еще должен изменить код, отметило этот путь?
Это не должно быть перепутано с "виной" или "аннотировать" функцию в системах управления исходным кодом - они качаются!
Мой фаворит от того, когда я работал над приложением связи прежней версии.
// Magic happens here...
кто-то отправляет мне c файл, который описал двоичный файл его созданная программа.
это не содержало комментариев кроме где-нибудь в записи реальных данных
SwapArray(..); // Big endian ???
write();
, я спросил о реализации SwapArray, и он сказал мне, что мне не был нужен он, это должно только удостовериться, что работает над машинами Linux.
После экспериментирования я узнал, что он использовал прямой порядок байтов каждый, где (который похож нормален), но только реальные данные были записаны в обратном порядке байтов. Обычно Вы видели его в Hex-редакторе, но данные хранились в плавающей точке, поэтому дело не в этом легкий заметить смешанный порядок байтов.
Top of the Pops, конечно, должна быть
// This code should never be called
Я должен был бы сказать, что наименее полезный тип комментария, с которым я встретился, является комментарием второго языка.
я видел бы комментарии, записанные ясно на чьем-то родном языке, чем небрежно писавшие в очень плохом приближении английского языка. По крайней мере тогда носитель языка того языка мог перевести его. Комментарии ESL часто нечитабельны всем на планете кроме человека, который записал им, и иногда даже ими.
// this is messed up, and no one actually knows how it works anymore...
/* this is a hack.
ToDo: change this code */
Должны были бы определенно быть комментарии, которые стоят вместо обработки ошибок.
if(some_condition){
do_stuff();
}
else{
//An error occurred!
}
появился очень большой проект механизма базы данных в C много много лет назад - тысячи строк кода с короткими и именами переменной с орфографической ошибкой и никакие комментарии... до пути глубоко во вложенных если-условиях несколько тысяч строк в модуль следующий комментарий:
//if you get here then you really f**ked
к тому времени, я думаю, что мы уже знали это!
//I am not sure why this works but it fixes the problem.
Этот стоит первым в списке для моих бесполезных комментариев.
Взятый от одного из моего сообщения в блоге :
В процессе чистки части исходного кода для одного из проектов я справляюсь, я столкнулся со следующими комментариями:
/*
MAB 08-05-2004: Who wrote this routine? When did they do it? Who should
I call if I have questions about it? It's worth it to have a good header
here. It should helps to set context, it should identify the author
(hero or culprit!), including contact information, so that anyone who has
questions can call or email. It's useful to have the date noted, and a
brief statement of intention. On the other hand, this isn't meant to be
busy work; it's meant to make maintenance easier--so don't go overboard.
One other good reason to put your name on it: take credit! This is your
craft
*/
и затем немного далее вниз:
#include "xxxMsg.h" // xxx messages
/*
MAB 08-05-2004: With respect to the comment above, I gathered that
from the filename. I think I need either more or less here. For one
thing, xxxMsg.h is automatically generated from the .mc file. That might
be interesting information. Another thing is that xxxMsg.h should NOT be
added to source control, because it's auto-generated. Alternatively,
don't bother with a comment at all.
*/
и затем все снова и снова:
/*
MAB 08-05-2004: Defining a keyword?? This seems problemmatic [sic],
in principle if not in practice. Is this a common idiom?
*/
Когда-то давно я видел:
#region This is ugly but a mas has to do what a man has to do
Initialization of a gigantic array (...)
#endregion
// Aren't you glad this has ended?
я был рад, что не был тем разработчиком.
Что-то вроде этого:
// This method takes two integer values and adds them together via the built-in
// .NET functionality. It would be possible to code the arithmetic function
// by hand, but since .NET provides it, that would be a waste of time
private int Add(int i, int j) // i is the first value, j is the second value
{
// add the numbers together using the .NET "+" operator
int z = i + j;
// return the value to the calling function
// return z;
// this code was updated to simplify the return statement, eliminating the need
// for a separate variable.
// this statement performs the add functionality using the + operator on the two
// parameter values, and then returns the result to the calling function
return i + j;
}
И так далее.
|
и ^
может и быть логичным и поразрядным.
– Dirk Vollmar
18 September 2010 в 00:47
cntrVal = ""+ toInteger(cntrVal) //<---MAYBE THIS IS THE WAY I'M GOING THROUGH CHANGES (comin' up comin' up) THIS IS THE WAY I WANNA LIVE
Это - лирика от песни электронного типа btw...
Очень большой исходный файл, реализовывая многопоточность в единственном процессе. Посреди всего переключения стека вызовов и семафорного захвата и приостановки потока и возобновления был простой комментарий относительно особенно неясного бита управления указателем:
/* Trickiness */
Ну и дела, благодарит совместно использовать.
try
{
...some code...
}
catch
{
// Just don't crash, it wasn't that important anyway.
}
*sigh
Один я никогда не находил очень полезными:
<!--- Lasciate ogne speranza, voi ch'intrate --->
autocomplete="off"
на форме входа в систему предотвратит автозаливку. Примером является searscard.com.
– James Sumners
15 June 2010 в 07:54
У меня есть очень дурная привычка к выполнению этого, особенно когда я в ударе:
// TODO: Documentation.
#include <stdio.h>
//why isn't this working!
С компилятором C, который только поддерживает /*-style */
глобальные комментарии.
Два большинство бесполезных комментариев я когда-либо видел...
try
{
...
}
catch
{
// TODO: something catchy
}
я отправил этого в Ежедневной газете WTF также, таким образом, я обрежу его только к комментарию...
// TODO: The following if block should be reduced to one return statememt:
// return Regex.IsMatch(strTest, NAME_CHARS);
if (!Regex.IsMatch(strTest, NAME_CHARS))
return false;
else
return true;
//' OOOO oooo that smell!! Can't you smell that smell!??!??!!!!11!??/!!!!!1!!!!!!1
If Not Me.CurrentMenuItem.Parent Is Nothing Then
For Each childMenuItem As MenuItem In aMenuItem.Children
do something
Next
If Not Me.CurrentMenuItem.Parent.Parent Is Nothing Then
//'item is at least a grand child
For Each childMenuItem As MenuItem In aMenuItem.Children
For Each grandchildMenuItem As MenuItem In childMenuItem.Children
do something
Next
Next
If Not Me.CurrentMenuItem.Parent.Parent.Parent Is Nothing Then
//'item is at least a grand grand child
For Each childMenuItem As MenuItem In aMenuItem.Children
For Each grandchildMenuItem As MenuItem In childMenuItem.Children
For Each grandgrandchildMenuItem As MenuItem In grandchildMenuItem.Children
do something
Next
Next
Next
End If
End If
End If
Вот мои два избранных:
// do nothing
Это действительно не помогает, поскольку это просто занимает место.
Тогда где-нибудь далее вперед:
// TODO: DAN to fix this. Not Wes. No sir. Not Wes.
я предполагаю, не являюсь ли я Dan или Wes, я должен просто проигнорировать это, правильно?
if (someFlag)
{
// YES
DoSomething();
}
else
{
// NO
DoSomethingElse();
}
был один парень, который постоянно делал это, остальная часть команды в конечном счете убедила его прекращать делать его!
Столкнулся с этим сегодня:
/// <summary>
/// The Page_Load runs when the page loads
/// </summary>
private void Page_Load(Object sender, EventArgs e) {}
Приложение LOC 100k, которое было портировано от vb6 до vb.net. Выглядит, как будто предыдущий разработчик поместил заголовок комментария в один метод и затем скопировал и вставил точный комментарий на каждый метод, который он записал с тех пор. Сотни методов и каждый неправильно прокомментировали...
, Когда я увидел его в первый раз, я смеялся... 6 месяцев спустя шутка становится неубедительная.
Мой любимый небывалый комментарий.
/* our second do loop */
do {
, Кто бы ни записал это - Вы знаете, кто Вы.