Oben Spezifische Beispiele, die in beschrieben werden, sind wie folgt. (Quellcode ist C #) Spezifikation) Betrachten Sie die Kommentarverwaltung am Schwarzen Brett. Der gepostete Kommentar wird in der Kommentarliste angezeigt, und jeder Kommentar wird bearbeitet, gelöscht, genehmigt, in Untersuchungshaft genommen und detailliert angezeigt. Jede Schaltfläche wird unter den folgenden Bedingungen gesteuert.
Quellcode) * Da ich nur bedingte Verzweigungen sehen möchte, entfällt die Steuerung der Tastenaktivierung.
private const string AuthorId = "Poster ID";
private const string FirstManagerId = "Erste Administrator-ID";
private const string SecondManagerId = "Zweite Administrator-ID";
/// <summary>
///Steuern Sie die Aktivität der Schaltfläche.
/// </summary>
/// <param name="loginUserId">Login Person ID</param>
/// <param name="firstApproverId">ID des primären Genehmigenden(Null, wenn nicht genehmigt)</param>
/// <param name="secondApproverId">ID des sekundären Genehmigenden(Null, wenn nicht genehmigt)</param>
private void SetButtonControls(string loginUserId, string firstApproverId, string secondApproverId)
{
//Jede Schaltfläche ist inaktiv und initialisiert.
if (loginUserId == AuthorId && firstApproverId == null && secondApproverId == null)
{
//Schaltfläche Bearbeiten, Schaltfläche Löschen, Schaltfläche Detailanzeige, Aktivierung
}
else if (loginUserId == FirstManagerId && firstApproverId == null)
{
//Genehmigungsschaltfläche, Untersuchungsschaltfläche, Aktivierung der Detailanzeigeschaltfläche
}
else if (loginUserId == FirstManagerId && firstApproverId != null)
{
//Detaillierte Aktivierung der Anzeigetaste
}
else if (loginUserId == SecondManagerId && firstApproverId != null && secondApproverId == null)
{
//Schaltfläche "Genehmigung", Schaltfläche "Untersuchungshaft", Aktivierung der Schaltfläche "Detailanzeige"
}
else if (loginUserId == SecondManagerId && firstApproverId != null && secondApproverId != null)
{
//Detaillierte Aktivierung der Anzeigetaste
}
}
private static final String AUTHOR_ID = "Poster ID";
private static final String FIRST_MANAGER_ID = "Erste Administrator-ID";
private static final String SECOND_MANAGER_ID = "Zweite Administrator-ID";
protected void setButtonControls(String loginUserId, String firstApproverId, String secondApproverId) {
//Jede Schaltfläche ist inaktiv und initialisiert.
if (AUTHOR_ID.equals(loginUserId) && firstApproverId == null && secondApproverId == null) {
//Schaltfläche Bearbeiten, Schaltfläche Löschen, Schaltfläche Detailanzeige, Aktivierung
} else if (FIRST_MANAGER_ID.equals(loginUserId) && firstApproverId == null) {
//Schaltfläche "Genehmigung", Schaltfläche "Untersuchungshaft", Aktivierung der Schaltfläche "Detailanzeige"
} else if (FIRST_MANAGER_ID.equals(loginUserId) && firstApproverId != null) {
//Detaillierte Aktivierung der Anzeigetaste
} else if (SECOND_MANAGER_ID.equals(loginUserId) && firstApproverId != null && secondApproverId == null) {
//Genehmigungsschaltfläche, Untersuchungsschaltfläche, Aktivierung der Detailanzeigeschaltfläche
} else if (SECOND_MANAGER_ID.equals(loginUserId) && firstApproverId == null && secondApproverId != null) {
//Detaillierte Aktivierung der Anzeigetaste
}
}
Es entspricht den Spezifikationen, ist aber schwer zu lesen, da es alles andere ist, wenn. Da die negative Anweisung derselben bedingten Anweisung in der if-Anweisung geschrieben ist, ist sie auch redundant. Es ist besser, if-Anweisungen in derselben Zeile anzuordnen.
private void SetButtonControls(string loginUserId, string firstApproverId, string secondApproverId)
{
//Jede Schaltfläche ist inaktiv und initialisiert.
//Es gab viele Leute um mich herum, die nicht wussten, wie man das schreibt.
bool firstApproved = firstApproverId != null;
bool secondApproved = secondApproverId != null;
if (loginUserId == AuthorId)
{
if (!firstApproved && !secondApproved)
{
//Schaltfläche Bearbeiten, Schaltfläche Löschen, aktiv
}
//Detaillierte Aktivität der Anzeigetasten
}
else if (loginUserId == FirstManagerId)
{
if (!firstApproved)
{
//Schaltfläche "Genehmigen", Schaltfläche "Untersuchungshaft", Aktivierung
}
//Aktivierung der Schaltfläche für Genehmigungsdetails
}
else if (loginUserId == SecondManagerId)
{
if (firstApproved && !secondApproved)
{
//Genehmigungsschaltfläche, Untersuchungsschaltfläche
}
//Detaillierte Aktivierung der Anzeigetaste
}
}
private static final String AUTHOR_ID = "Poster ID";
private static final String FIRST_MANAGER_ID = "Erste Administrator-ID";
private static final String SECOND_MANAGER_ID = "Zweite Administrator-ID";
protected void setButtonControls(String loginUserId, String firstApproverId, String secondApproverId) {
//Jede Schaltfläche ist inaktiv und initialisiert.
boolean firstApproved = firstApproverId != null;
boolean secondApproved = secondApproverId != null;
if (AUTHOR_ID.equals(loginUserId)) {
if (!firstApproved && !secondApproved) {
//Schaltfläche Bearbeiten, Schaltfläche Löschen, aktiv
}
//Aktivierung der Detailanzeigetaste
} else if (FIRST_MANAGER_ID.equals(loginUserId)) {
if (!firstApproved) {
//Schaltfläche "Genehmigen", Schaltfläche "Untersuchungshaft", Aktivierung
}
//Aktivierung der Schaltfläche für Genehmigungsdetails
} else if (SECOND_MANAGER_ID.equals(loginUserId)) {
if (firstApproved && !secondApproved) {
//Genehmigungsschaltfläche, Untersuchungsschaltfläche
}
//Detaillierte Aktivierung der Anzeigetaste
}
}
Probleme beim Schreiben von Quellcode treten grundsätzlich aufgrund individueller Unterschiede in den Fähigkeiten auf, z. B. "Ich kann mir keine solche Schreibweise vorstellen". Ich möchte regelmäßig Beispielcode schreiben, einschließlich der Bedeutung der Überprüfung des Quellcodes.
Ich habe im Kommentarbereich einen Referenzcode erhalten, daher werde ich ihn veröffentlichen. Darüber hinaus wurden einige Variablennamen geändert, damit die Behandlung des Bool-Typs mit anderen Artikeln vereinheitlicht werden kann. Es gibt keine if-Anweisung, und die Steuerung der Schaltflächenaktivität ist leicht zu verstehen.
private void SetButtonControls(string loginUserId, string firstApproverId, string secondApproverId)
{
//Zuerst genehmigt
bool firstApproved = firstApproverId != null;
//Zweite genehmigt
bool secondApproved = firstApproved && secondApproverId != null;
//Gleich kann für den Zeichenfolgenvergleich verwendet werden.==Ein Zeichenfolgenvergleich ist jedoch möglich.
bool isAuthor = AuthorId == loginUserId;
bool isFirstManager = FirstManagerId == loginUserId;
bool isSecoundManager = SecondManagerId == loginUserId;
//Steuerung der Tastenaktivierung
//Schaltfläche Bearbeiten
bool editButtonEnabled = isAuthor && !firstApproved;
//Schaltfläche Löschen
bool deleteButtonEnabled = isAuthor && !firstApproved;
//Schaltfläche "Genehmigung"
bool approvalButtonEnabled = (isFirstManager && !firstApproved) || (isSecoundManager && !secondApproved);
//Schaltfläche Details
bool detailButtonEnabled = isAuthor || isFirstManager || isSecoundManager;
}
private static final String AUTHOR_ID = "Poster ID";
private static final String FIRST_MANAGER_ID = "Erste Administrator-ID";
private static final String SECOND_MANAGER_ID = "Zweite Administrator-ID";
protected void setButtonControls(String loginUserId, String firstApproverId,
String secondApproverId) {
//Zuerst genehmigt
boolean firstApproved = firstApproverId != null;
//Zweite genehmigt
boolean secondApproved = firstApproved && secondApproverId != null;
boolean isAuthor = AUTHOR_ID.equals(loginUserId);
boolean isFirstManager = FIRST_MANAGER_ID.equals(loginUserId);
boolean isSecoundManager = SECOND_MANAGER_ID.equals(loginUserId);
//Steuerung der Tastenaktivierung
//Schaltfläche Bearbeiten
boolean editButtonEnabled = isAuthor && !firstApproved;
//Schaltfläche Löschen
boolean deleteButtonEnabled = isAuthor && !firstApproved;
//Schaltfläche "Genehmigung"
boolean approvalButtonEnabled = (isFirstManager && !firstApproved) || (isSecoundManager && !secondApproved);
//Schaltfläche Details
boolean detailButtonEnabled = isAuthor || isFirstManager || isSecoundManager;
}
Nächster Artikel (eine etwas besorgniserregende Codesammlung)
Recommended Posts